我有一个显示我的产品的基本控制器,
App.controller('ProductCtrl',function($scope,$productFactory){
$productFactory.get().success(function(data){
$scope.products = data;
});
});
Run Code Online (Sandbox Code Playgroud)
在我看来,我在列表中显示这些产品
<ul>
<li ng-repeat="product as products">
{{product.name}}
</li>
</ul
Run Code Online (Sandbox Code Playgroud)
我想要做的是当有人点击产品名称时,我有另一个名为cart的视图,其中添加了此产品.
<ul class="cart">
<li>
//click one added here
</li>
<li>
//click two added here
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
所以我的疑问是,如何将这个点击的产品从第一个控制器传递到第二个?我认为购物车也应该是一个控制器.
我使用指令处理click事件.另外我觉得我应该使用服务来实现上述功能只是无法想象如何?因为购物车将是预定义的,所添加的产品数量可能是5/10,具体取决于用户所在的页面.所以我想保持这种通用性.
更新:
我创建了一个广播服务,在第二个控制器中我收到它.现在查询是如何更新dom的?由于我的产品列表是非常硬编码的.
我试图在我使用时将数据发送到控制器的指令链接功能ng-clicked,但是我没有将数据发送到指令,该指令在第一次加载页面时调用
<h2 ng-click="clickMe(somedata)"> click </h2>
<my-directive my-key="myVal"> </my-directive>
Run Code Online (Sandbox Code Playgroud)
.controller('myController',function($scope){
$scope.clickMe=function(somedata){
$scope.myVal=somedata;
};
});
Run Code Online (Sandbox Code Playgroud)
.directive('myDirective',function(){
return{
restrict:'E',
scope:{
myKey:'='
},
templateUrl:'exampleTempl.html',
controller:'myController',
link:function(scope,elem,attr){
console.log(scope.myKey); // getting undefined
console.log(scope.myVal); //here i want the data from controller when i clicked on ng-click
}
}
});
Run Code Online (Sandbox Code Playgroud) 我正在开发一个angularJS应用程序,我正在努力坚持AngularJs中最有效和广泛接受的开发风格.目前,我正在使用这种方式声明我的服务:
app.factory('MyService', function() {
/* ... */
function doSomething(){
console.log('I just did something');
}
function iAmNotVisible(){
console.log('I am not accessible from the outside');
}
/* ... */
return{
doSomething: doSomething
};
});
Run Code Online (Sandbox Code Playgroud)
但是,有很多例子,我不太确定要采用哪种设计风格.对服务有广泛了解的人能否解释为什么某种风格比另一种更具相关性?
除了限制对我服务中某些功能的访问之外,我在做什么有用吗?
我有一个主控制器,还有另外两个控制器:
<div ng-controller="mainController" ng-model="value">
<div ng-controller="otherController"></diV>
<div ng-controller="anOtherController"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
由于控制器继承,我otherController可以更新我value与ng-modeldiretive 绑定.
但我怎么能看到我anOtherController的value人为了执行由anOtherController拥有的功能改变了吗?
我可以为这个值注册一个函数吗?