angular.js - AngularJS在ng-repeat內使用ng-model出現的問題
ringa_lee
ringa_lee 2017-05-15 16:52:42
0
4
553

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內完整的修改完數值?然後透過儲存按鈕什麼的儲存修改?
或者說如何暫時性取消對變數的監視?

ringa_lee
ringa_lee

ringa_lee

全部回覆(4)
滿天的星座

有一些問題:
1. ng-model="obj.qqs[$index]" 應該是ng-model="qq" 這個就可以解決focus消失的問題。
2. 一般不把primitive type的變數當作ng-model, 這裡可以用literal object。

["12345","23456"] => [{val: "12345"}, {val: "23456"}]

那麼ng-model也要修改成qq.val
3. 如何透過按鈕儲存,用ng-click即可。
4. Style的問題。用'controller as ctrl'的語法,避免在controller裡面使用$scope。詳見下面的sample

Working sample: http://jsfiddle.net/wfh04vhc/

过去多啦不再A梦

AngularJS ng-repeat下使用ng-model詳解:連結描述

黄舟

直接 ng-model="qq" 就行了吧

滿天的星座

http://www.lovelucy.info/understanding-scopes-in-angularjs.html

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板