只是为了说明,我对angularJS一无所知,我之前和knockoutJS一起工作,当涉及角度时,我只是在做出假设。AngularJS - 没有键值对象的两种方式绑定
我有这样的代码:
angular.module("umbraco").controller("recallCtrl",
function ($scope, $routeParams) {
$scope.dcList = {
key: "value",
abc: "aaaa",
prop: "tadaa!"
}
});
和标记如下:
<div ng-controller="recallCtrl">
<table class="table table-sm">
<thead>
<tr>
<td></td>
<th>Key</th>
<th>Value</th>
</tr>
</thead>
<tr ng-repeat="(key, value) in dcList">
<td>
</td>
<td>
<input ng-model="key" />
</td>
<td>
<input ng-model="value"/>
</td>
</tr>
</table>
<pre>{{dcList | json}}</pre>
</div>
所以应该在HTML完结的dcList
输出改变,当我修改相应的输入它的价值,其因为我认为必然会反对?
如果我做错了,请指教。我想创建对象并能够更改其键和值。
你应该声明你模块是这样的:'angular.module( “一把umbraco”,[])'。你忘了方括号,你基本上是要求模块不声明它。我希望它能解决你的问题! –
'ng-model'相对于当前范围进行评估,在这种情况下本地化为'ng-repeat'。我不认为你可以改变*键*,但*值*正在更新 - 你只是没有看到它,因为它不影响父对象上的'dcList'对象。为了更新'dcList'属性的*值*,你必须在'ng-repeat'中使用'ng-model =“dcList [key]”'。 – Lex
@Peter_Fretter不是在这种情况下,正如我所说,我完全不知道角度和它是如何工作的,只是假设,但我使用Umbraco CMS,它是在角度帮助下构建的,因为我假设我正在注入我的一块代码到现有的ng片段,这就是为什么我没有ng-app声明,如果我设置方括号,它只是打破 – Raimonds