我有一个控制器,我写的,我在多个地方使用我的应用程序ng-include和ng-repeat,就像这样:
ng-include
ng-repeat
<div ng-repeat="item in items" ng-include="'item.html'" ng-controller="ItemController" ></div>
在控制器/模板中,我希望该item值存在,并且整个事情都围绕着这个想法建立。不过,现在,我需要以稍微不同的方式使用控制器,而无需使用ng- repeat,但仍然需要能够传递item。我看到ng-init并认为它可以满足我的需要,例如:
item
ng- repeat
ng-init
<div ng-init="item = leftItem" ng-include="'item.html'" ng-controller="ItemController" ></div> <div ng-init="item = rightItem" ng-include="'item.html'" ng-controller="ItemController" ></div>
但这似乎不起作用。任何人都有任何想法如何在这样的单个实例中为范围传递变量?
编辑:在此上方的控制器正在加载leftItem和rightItem值,如下所示:
leftItem
rightItem
.controller('MainController', function($scope, ItemModel) { ItemModel.loadItems() .then(function(items) { $scope.$apply(function() { $scope.leftItem = items.left; $scope.rightItem = items.right; }); }); });
我最终将其重写为指令,并使用
scope: { item: '=' }