【发布时间】:2015-02-17 13:59:57
【问题描述】:
在我的应用程序中,我使用模态表单来编辑表格视图数据。我有一个麻烦,在第一步我没有使用其他变量和 .copy() - 所以当我编辑我的数据时 - 在表中我没有看到任何编辑,直到我点击保存(所以现在它是参考)。现在我需要做我之前描述过的事情......
我看到 angularJS 1.3 添加了一项功能:单向数据绑定。
我可以在我的应用程序中以某种方式使用它吗?
我写了一个plunker:
http://plnkr.co/edit/4gAWiK5gVg58jWtwYovK?p=preview
和代码:
<html ng-app="myapp">
<head>
<script data-require="angular.js@1.4.0-beta.4" data-semver="1.4.0-beta.4" src="https://code.angularjs.org/1.4.0-beta.4/angular.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body ng-controller="ArticleCtrl">
<h1>Hello Plunker!</h1>
<ol >
<li ng-repeat="item in articles">
<h4>{{item.name}}</h4>
<h2>{{::item.age}}</h2> <!--(like this i wanna to use with angularJS 1.3)-->
<a ng-click="editArticle(item)"> - Edit - </a>
</li>
</ol>
Edit your title: <input type="text" ng-model="article.name"/>
Edit your age: <input type="text" ng-model="article.age"/>
<p>And save:</p>
<button type="submit">Save</button>
</body>
</html>
和js:
var app = angular
.module('myapp', []);
angular.module('myapp')
.controller('ArticleCtrl', ['$scope', function($scope) {
$scope.articles = [{name: '123', age: 10}, {name: '456', age: 20}, {name: '789', age: 30}];
$scope.article = {name: '', age: ''};
$scope.editArticle = function(article){
$scope.article = article;
};
}])
如果有不清楚的地方,请写在 cmets 中。谢谢。
还有一次很快:在单击“保存”按钮之前不要更新 ng-repeat 中的模型。
【问题讨论】:
-
您是说您不想使用 .copy() 方法来延迟应用模型更改吗?您不能使用一种方式数据绑定来执行您所描述的操作。这仅用于将数据填充到 dom 中一次,然后再也不会更改它。复制您的模型对象是执行您所描述的操作的唯一方法。
-
@jw56578 是的 - 有了副本,我几乎需要从零重写代码......另外:也许在更新一项后可以更改 ng-repeat 数组项?
标签: javascript jquery html angularjs