fiddle連結:http://jsfiddle.net/08tox9k4/
<html ng-app = 'test'>
<head></head>
<body ng-controller = 'testCtrl'>
<p ng-repeat="qq in obj.qqs">
<input class="qq" ng-model="obj.qqs[$index]" placeholder="请输入">;
</p>
<script src="angular.min.js"></script>
<script type="text/javascript">
angular.module('test',[])
.controller('testCtrl', ['$scope', function($scope){
$scope.obj = {
qqs: ["12345","23456"]
};
}]);
</script>
</body>
</html>
問題: 當在產生的input標籤內修改數值的時候每修改一位,就失去滑鼠焦點,可能是因為資料的變更刷新了視圖。
如何能在input內完整的修改完數值?然後透過儲存按鈕什麼的儲存修改?
或者說如何暫時性取消對變數的監視?
有一些問題:
1. ng-model="obj.qqs[$index]" 應該是ng-model="qq" 這個就可以解決focus消失的問題。
2. 一般不把primitive type的變數當作ng-model, 這裡可以用literal object。
那麼ng-model也要修改成qq.val
3. 如何透過按鈕儲存,用ng-click即可。
4. Style的問題。用'controller as ctrl'的語法,避免在controller裡面使用$scope。詳見下面的sample
Working sample: http://jsfiddle.net/wfh04vhc/
AngularJS ng-repeat下使用ng-model詳解:連結描述
直接
ng-model="qq"
就行了吧http://www.lovelucy.info/understanding-scopes-in-angularjs.html