Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular以编程方式添加ngChange而不添加属性_Javascript_Angularjs_Angularjs Directive_Angular Ngmodel_Angularjs Ng Change - Fatal编程技术网

Javascript Angular以编程方式添加ngChange而不添加属性

Javascript Angular以编程方式添加ngChange而不添加属性,javascript,angularjs,angularjs-directive,angular-ngmodel,angularjs-ng-change,Javascript,Angularjs,Angularjs Directive,Angular Ngmodel,Angularjs Ng Change,我试图在不修改HTML的情况下模拟指令中的ng change属性(因此没有ng change属性) 查看ngChange指令的源代码,我的指令是这样工作的: (基本上在本指令中,我需要blur()a在model更改时选择字段) 将其应用于: <select id="test" ng-options="option for option in ['test1', 'test2'] track by option" class="form-control" ng

我试图在不修改HTML的情况下模拟指令中的ng change属性(因此没有ng change属性)

查看
ngChange
指令的源代码,我的指令是这样工作的: (基本上在本指令中,我需要
blur()
a
model
更改时选择
字段)

将其应用于:

<select
    id="test"
    ng-options="option for option in ['test1', 'test2'] track by option"
    class="form-control"
    ng-model="form.test"
    ng-required="true"
    blur-on-change-fix
></select>

但这是正确的解决方案吗?难道没有别的办法吗?scope.change()呢


谢谢

如果我理解正确,您希望在您的机型上安装一款
$watch
;例如:

link: function($scope, element, attr, ngModel) {
    $scope.$watch(attr.ngModel,function(newVal,oldVal) {
        element.blur();
    })

您说过您想在
型号更改时做些什么,所以这就是$watch的用法。

谢谢您的解释,我遗漏了一些东西;)是的,我想我误解了NGC的用法。我将编辑我的答案<代码>$watch$
在这里仍然是正确的用法。
link: function($scope, element, attr, ngModel) {
    $scope.$watch(attr.ngModel,function(newVal,oldVal) {
        element.blur();
    })