Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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
以编程方式更新模型时发生AngularJS火灾更改事件_Angularjs_Watch_Angularjs Ng Change - Fatal编程技术网

以编程方式更新模型时发生AngularJS火灾更改事件

以编程方式更新模型时发生AngularJS火灾更改事件,angularjs,watch,angularjs-ng-change,Angularjs,Watch,Angularjs Ng Change,ng更改仅用于用户输入,并且在以编程方式对模型进行更改时不会触发,这一事实今天确实让我头疼。我正在使用一个用户输入表单,该表单包含名称的各个部分,以及动态构建和排序的凭据。表单有一个“displayName”字段,当名称部分发生更改时,该字段将更新。这被封装在一个指令中,我需要在更大的视图中使用它。这就是事情变得棘手的地方。我需要在指令中隐藏名称部分字段,并使用外部表单的名称字段。我认为通过连接一个函数来更新隐藏的文本输入字段,从而更新我的displayName字段,这将很容易。然后我发现对模型

ng更改仅用于用户输入,并且在以编程方式对模型进行更改时不会触发,这一事实今天确实让我头疼。我正在使用一个用户输入表单,该表单包含名称的各个部分,以及动态构建和排序的凭据。表单有一个“displayName”字段,当名称部分发生更改时,该字段将更新。这被封装在一个指令中,我需要在更大的视图中使用它。这就是事情变得棘手的地方。我需要在指令中隐藏名称部分字段,并使用外部表单的名称字段。我认为通过连接一个函数来更新隐藏的文本输入字段,从而更新我的displayName字段,这将很容易。然后我发现对模型的编程更改不会触发更改事件

我尝试为其中一个名称字段创建一个手表,看看是否可以让它更新displayName字段,但没有成功

this.scope.$watch('provider.firstName', function (event) {
            namePropertyChanged2(displayNameOverridden, displayName, provider, credentials);
        });
当我更改firstName的输入字段时,它会修改指令的值“provider.firstName”,并运行“namePropertyChanged2”函数。列出的代码在初始化函数中运行,其中“displayName”是从this.scope.provider.displayName分配的局部变量。监视任务要求我生成局部变量,而不是传入控制器变量。不知道为什么,但不管怎样。因此,此函数将运行并使用正确的值更新“displayName”。。。并且它绑定到的输入字段未更新。糟糕透了


理想的做法是在模型更改时手动触发更改事件,这将更新displayName,并让您感到非常高兴

如果看不到任何代码,就很难理解您的描述。但是我觉得您所需要的只是
显示名称:{{{getDisplayName()}}
,以及$scope上的
getDisplayName()
函数,该函数将显示名称的所有部分组合在一起并返回它。确保要查看的值存在于该作用域中。请尝试
scope.$eval('provider.firstName')
。或者,您可以在每个摘要循环中将函数传递给
$watch
以进行评估。请显示不起作用的指令代码以及如何使用该指令的示例。我不确定如何解决此问题,但我已经解决了。如果有人知道如何手动触发输入字段上的更改事件,我仍然对答案感兴趣。我知道ng更改仅用于用户输入,但我的问题是为什么会这样,以及如何在以编程方式更改模型时触发更改事件。