0

感谢 SOF 解决了我在 angularjs 和自动完成方面的最后一个问题。 带有jquery自动完成的Angularjs不起作用

现在,我在 ng-repeat 中有一个相同类型的问题......

在视图中

<tr data-ng-repeat="item in pagedItems">
                    <td title={{item.name}}>{{item.name}}</td>
                    <td> <input type=text auto-complete ng-model="item.upload_status">
                    Upload status: {{item.upload_status}}</td>
                    <td title={{item.lat}}>{{item.lat}}</td>
                    <td title={{item.lon}}>{{item.lon}}</td>
                </tr>

在指令中

myapp.directive('autoComplete', function(autoCompleteDataService) {
return {
    restrict: 'A',
    link: function(scope, elem, attr, ctrl) {

        elem.autocomplete({

            source: autoCompleteDataService.getSource(), 

            select: function( event, ui ) {
                scope.$apply(function() { this.item.upload_status = ui.item.value; });
            },

            change: function (event, ui) {
                if (ui.item === null) {
                    scope.$apply(function() { scope.foo = null });
                }
            },
            minLength: 2
        });
    }
};

});

它给出了错误,

TypeError:无法设置未定义的属性“upload_status”

任何更新 upload_status 的想法表示赞赏..

4

1 回答 1

1

this.item.upload_status应该scope.item.upload_status

于 2013-09-25T12:44:41.270 回答