angular.js是否可以在每个控制器中调用函数?

时间:2017-09-29 12:19:57

标签: angularjs

您好我刚接触角度,我有一个问题给了我一些麻烦,研究并试图让它工作。 knockout.js中的相同任务没有给我带来任何问题,所以我想知道它是否也可能出现角度。

所以我有:

<td ng-repeat="element in elements" ng-model="Element">`
<element-template style="position: static" ng-model="Element" el="element">`
</element-template>

并且每次重复都会给我一个html模板的控制器,看起来像这样

<div ng-model="el" class="element">
</div>

整个事情从中获取数据     pageController.controller[...] 控制元素数据的数组。 每个元素都有自己的控制器,看起来像这样:

pageController.directive('Element') {
  var controller = ['$scope', [...] , function ($scope, [...])
  {
    //code
    $scope.save() = function(){
        console.log("save successful");
    }
  }
}

现在的问题是: 有没有办法让pageController让每个元素的控制器执行元素的save()?

在淘汰赛中,我只是订阅了一个函数来改变元素控制器中某些observable的变化,并且只是调用函数但是我找不到一种方法来处理角度相同的事情。如果问题重复或过于微不足道,请提前致谢并对不起。

1 个答案:

答案 0 :(得分:0)

好的,不确定我是否按照您的需要进行操作,也许有一个代码示例的傻瓜会有所帮助。 但是,如果要重复ng-model指令,可以使用$index属性来区分元素。

因此,不要只是el,而是将其绑定到页面控制器中的数组$scope.el = [];

<td ng-repeat="element in elements">
  <input type="text" ng-model="el[$index]" />
</td>

在div中使用ng-model也没有做任何事情,只有在输入中才能对值进行双重绑定才有意义。 我认为你需要做一些关于这个主题的教程,看起来你并不知道事情的范围以及ng-repeat如何运作。

如果试图访问elements数组中的对象,例如你有一个名为elements的对象数组:

$scope.elements = [
   { title: "one"},
   { title: "two"},
   { title: "three"},
];

然后你会在ng-repeat中执行此操作:

<td ng-repeat="element in elements">
  <input type="text" ng-model="element.title" />
</td>