绑定到ng-repeat会模糊重复器内部的输入



我有一个类似的问题在这里:https://groups.google.com/forum/!味精/角度/eB19TlFHFVE/Rlh——XImXeYJ

这是小提琴:http://jsfiddle.net/KGu9n/25/

我的问题是,我也有一个保存函数,在用户输入时被调用。

所以我有这样的东西(其中可能有操纵$scope.piece。后端移动。当对象作为响应返回时。数据,它重新设置$scope.piece。运动,在这一点上失去焦点。

$scope.save = function () {
$http.post('/save/', { object: $scope.piece.movements }).then(function (response) {
      $scope.piece.movements = response.data; // loses focus here
 });
};

任何帮助将是伟大的!如果有人知道我如何在小提琴/plnkr中模拟post/save,我会很乐意更新我的小提琴。

比起使用函数,在这里使用$watch来查看片段的更改会更好。然后在watch中,您可以执行逻辑来确定这是否是触发更改的正确时间(请参阅超时逻辑),并调用工厂来执行保存。如图http://jsfiddle.net/xmltechgeek/HbDDf/所示,此功能不会失去焦点。

var app = angular.module('app', [])
    .controller('controller', function($scope, $timeout, dummy) {
        $scope.piece = {};
        $scope.piece.movements = [{name: "Allegro"} , {name: "Presto"}];
        var saveTimeout;
        $scope.$watch('piece.movements', function(){
            $timeout.cancel(saveTimeout)
            saveTimeout = $timeout(function(){
                dummy.save($scope.piece.movements, function(data){
                    $scope.piece.movements = data;
                    console.log($scope.piece.movements);
                })
            }, 1500);
        }, true);
    })
.factory('dummy', function(){
    var changes = {
        content: "",
        save: function(content, callback){
            this.content = content;
            callback(this.content);
        },
        get: function() {
            return this.content;
        }
    };
    return changes;
});

最新更新