一尘不染

角度传递范围到ng-include

angularjs

我有一个控制器,我写的,我在多个地方使用我的应用程序ng-includeng-repeat,就像这样:

<div
  ng-repeat="item in items"
  ng-include="'item.html'"
  ng-controller="ItemController"
></div>

在控制器/模板中,我希望该item值存在,并且整个事情都围绕着这个想法建立。不过,现在,我需要以稍微不同的方式使用控制器,而无需使用ng- repeat,但仍然需要能够传递item。我看到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>

但这似乎不起作用。任何人都有任何想法如何在这样的单个实例中为范围传递变量?

编辑:在此上方的控制器正在加载leftItemrightItem值,如下所示:

.controller('MainController', function($scope, ItemModel) {
    ItemModel.loadItems()
        .then(function(items) {
            $scope.$apply(function() {
                $scope.leftItem = items.left;
                $scope.rightItem = items.right;
            });
        });
});

阅读 236

收藏
2020-07-04

共1个答案

一尘不染

我最终将其重写为指令,并使用

scope: {
    item: '='
}
2020-07-04