相关疑难解决方法(0)

你可以在创建时将参数传递给AngularJS控制器吗?

我有一个控制器负责与API通信以更新用户的属性,名称,电子邮件等.每个用户都有一个'id'在查看个人资料页面时从服务器传递的用户.

我想将此值传递给AngularJS控制器,以便它知道当前用户的API入口点是什么.我试过传递价值ng-controller.例如:

function UserCtrl(id, $scope, $filter) {

$scope.connection = $resource('api.com/user/' + id)
Run Code Online (Sandbox Code Playgroud)

并在HTML中

<body ng-controller="UserCtrl({% id %})">
Run Code Online (Sandbox Code Playgroud)

其中{% id %}打印从服务器发送的id.但我得到错误.

在创建时将值传递给控制器​​的正确方法是什么?

javascript angularjs

278
推荐指数
9
解决办法
32万
查看次数

在Angular JS中的控制器之间传递数据?

我有一个显示我的产品的基本控制器,

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的?由于我的产品列表是非常硬编码的.

javascript angularjs angular-services

239
推荐指数
8
解决办法
34万
查看次数

ng-init + ng-controller:控制器范围内的奇怪行为

我是Angular的新手但很享受它的方法.我有一个HTML文件,我ng-init在一个<div>元素中初始化一个变量,我也在声明一个带有该ng-controller指令的控制器:

<div ng-controller="myCtrl" ng-init='foo="bar"'>
Run Code Online (Sandbox Code Playgroud)

如果我console.log$scope控制器脚本中的对象,我可以看到其他foo属性列出的属性,但是当我尝试从同一个脚本访问它时,它给了我undefined.我也在使用Batarang,它向我展示了<div>-scope 的模型,其中还包括该foo属性.

我从第二个答案中知道将变量传递给AngularJS控制器,最佳实践?我可以通过将我的ng-init指令移到外部来解决问题<div>,但我想知道幕后真正发生的事情.任何帮助非常感谢,提前感谢.

编辑

div元素中指令的顺序无关紧要.即使ng-init之前已指定,问题仍然存在ng-controller

angularjs-scope

12
推荐指数
1
解决办法
2万
查看次数