ngModelController设置模型

时间:2014-07-14 10:16:50

标签: angularjs angularjs-directive

我有一个像

这样的指令
require: '^ngModel',
link: function (scope, elem, attr, ctrl) {
    var clear = angular.element('<span style="position: absolute; top: 0; bottom: 0; height: 14px; margin: auto; right: 20px; cursor: pointer; color: #999;" class="glyphicon glyphicon-remove"></span>');
    clear.on('click', function () {
        ctrl <- set model to ''
        elem.focus();
        elem.val('');
    });
    elem.after(clear);
}

我想在输入字段中添加一个清除按钮,单击此按钮时输入应为空。但我也想清除这种输入的模型。所以我想要ctrl.$setModel('')

之类的东西

我试过了:

ctrl.$setViewValue('')
ctrl.$modelValue = ''

两者都没有效果。如何从指令设置模型?

1 个答案:

答案 0 :(得分:2)

你只需要拨打$ apply:

clear.on('click', function () {
    scope.$apply(function() {
        ctrl.$setViewValue('')
        ctrl.$render();
    });

    elem.focus();
});