您好我刚接触角度,我有一个问题给了我一些麻烦,研究并试图让它工作。 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的变化,并且只是调用函数但是我找不到一种方法来处理角度相同的事情。如果问题重复或过于微不足道,请提前致谢并对不起。
答案 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>