角度表达式中的旧值

时间:2015-01-05 10:10:53

标签: angularjs

我已经多次重复此指令动态生成表单

app.directive('artMultiSelect', function (DemandFormUICommon) {
return {
    restrict: 'A',
    template:   '<div class="customInput">' +
                    '<div class="secondColumn" ng-show="!readonly()">' +
                        '<select chosen multiple ng-options="{{inputOptions}}" ng-model="modelVariable" id="{{\'gcp-formField-\' + inputName}}"><option value=""></option></select><br /><div class="inputError">{{inputError}}</div>' +
                    '</div>' +
                '</div>',
    scope: {
        modelVariable: '=artMultiSelect',
        inputOptions: '@',
        inputList: '=',
        readonly: '&'
    },
    link: function (scope, element, attrs, ctrl) {
        scope.$watch('modelVariable', function() {
            var input = element.find('select');
            var errorMessage = DemandFormUICommon.getFieldErrorMessage(input);
            scope.inputError = errorMessage;
        });
    }
};
});

DemandFormUICommon.getFieldErrorMessage(input);对于这个问题,这个函数的工作原理并不重要。它返回错误正确错误消息的字符串。

它应该是这样的:

enter image description here

通常这有效。但有时当错误消息被删除时会发生这样的事情:

enter image description here

就我而言,目前还没有关于错误信息的哪一部分存在的规则。它可以是一个字母或大部分文本。一旦出现这个错误,它仍然存在:

enter image description here

我检查了DemandFormUICommon.getFieldErrorMessage(input);的错误消息始终是正确的。所以我猜问题是角度绑定的某个地方。你们有过这个问题吗?或者你有什么建议我应该尝试吗?

0 个答案:

没有答案