在 Angular/Typescript 中使用 $watch
Using $watch in Angular/Typescript
我有一个 select 框,我需要在其中观察变化,以便动态更改第二个 select 框的值。
<select ng-model="$ctrl.primaryValue"
ng-options="key as value for (key, value) in $ctrl.primaryOptions">
</select>
<br /><br />
<select ng-model="$ctrl.secondaryValue"
ng-options="key as value for (key, value) in $ctrl.secondaryOptions">
</select>
我如何最好地观看 $ctrl.primaryValue 并根据其他 $ctrl.secondaryOptions.
的负荷
在我的解决方案中,我首先在我的控制器中注入了 $scope。
private dropdownService: DropdownService;
private $scope: any;
public static $inject: string[] = [DropdownService.IID, '$scope'];
constructor(dropdownService: DropdownService, $scope: any) {
this.dropdownService = dropdownService;
this.$scope = $scope;
然后仍然在这个构造函数中将一个 $watch 附加到这个范围
this.$scope.$watch(
(): string => {
return this.primaryValue;
},
(newValue: string, oldValue: string):void => {
console.log("the value ", oldValue, " got replaced with ", newValue);
}
);
第一个函数 returns 一个值,angular 将与之比较,如果它发生变化,则执行第二个函数。
希望这会帮助到别人。
另见这个问题:Angularjs: 'controller as syntax' and $watch。
$scope.$watch("$ctrl.primaryValue", (value) => {
console.log(value)
});
使用 select 标签的 ng-change 属性并调用相应的函数,这将进一步更新辅助 select 中显示的值。
<select ng-model="$ctrl.primaryValue"
ng-options="key as value for (key, value) in $ctrl.primaryOptions" ng-change="$ctrl.updateSecondaryOptions()">
</select>
内部控制器
public updateSecondaryOptions(): void {
// update the secondary options value here
}
随着点击事件触发摘要循环,更改将自动反映在辅助 select 标签内。
此致
阿杰
我有一个 select 框,我需要在其中观察变化,以便动态更改第二个 select 框的值。
<select ng-model="$ctrl.primaryValue"
ng-options="key as value for (key, value) in $ctrl.primaryOptions">
</select>
<br /><br />
<select ng-model="$ctrl.secondaryValue"
ng-options="key as value for (key, value) in $ctrl.secondaryOptions">
</select>
我如何最好地观看 $ctrl.primaryValue 并根据其他 $ctrl.secondaryOptions.
的负荷在我的解决方案中,我首先在我的控制器中注入了 $scope。
private dropdownService: DropdownService;
private $scope: any;
public static $inject: string[] = [DropdownService.IID, '$scope'];
constructor(dropdownService: DropdownService, $scope: any) {
this.dropdownService = dropdownService;
this.$scope = $scope;
然后仍然在这个构造函数中将一个 $watch 附加到这个范围
this.$scope.$watch(
(): string => {
return this.primaryValue;
},
(newValue: string, oldValue: string):void => {
console.log("the value ", oldValue, " got replaced with ", newValue);
}
);
第一个函数 returns 一个值,angular 将与之比较,如果它发生变化,则执行第二个函数。
希望这会帮助到别人。
另见这个问题:Angularjs: 'controller as syntax' and $watch。
$scope.$watch("$ctrl.primaryValue", (value) => {
console.log(value)
});
使用 select 标签的 ng-change 属性并调用相应的函数,这将进一步更新辅助 select 中显示的值。
<select ng-model="$ctrl.primaryValue"
ng-options="key as value for (key, value) in $ctrl.primaryOptions" ng-change="$ctrl.updateSecondaryOptions()">
</select>
内部控制器
public updateSecondaryOptions(): void {
// update the secondary options value here
}
随着点击事件触发摘要循环,更改将自动反映在辅助 select 标签内。
此致
阿杰