gpt4 book ai didi

javascript - 在 ng-if 中设置监视元素

转载 作者:数据小太阳 更新时间:2023-10-29 06:15:31 25 4
gpt4 key购买 nike

假设我有以下观点:

<div ng-if='some === "something"'>
<input type="text" ng-model="foo.Bar"/>
</div>

在 Controller some 中设置:

foo.controller('fooFoo',
function fooFoo($scope) {
$scope.some = "something";
$scope.$watch('foo.Bar',function (nVal, oVal) { etc...});
}
);

如果输入位于带有 ng-if 的 div 中,则 watch 不起作用。

为什么?我能以某种方式让它发挥作用吗?

最佳答案

您必须在 Controller 中创建 foo 的空对象。

foo.controller('fooFoo',
function fooFoo($scope) {
$scope.foo = {};
$scope.some = "something";
$scope.$watch('foo.Bar',function (nVal, oVal) { etc...});
}
);

推荐:您可以使用ng-change代替$scope.$watch();因为 $watch 对于 Angular 应用程序性能来说是一种不好的做法。

使用 ng-change(HTML):

<div ng-if='some === "something"'>
<input type="text" ng-model="foo.Bar" ng-change="onChange()"/>
</div>

JavaScript:

foo.controller('fooFoo',
function fooFoo($scope) {
$scope.some = "something";

$scope.onChange = function(){
console.log($scope.foo.Bar);
};
}
);

关于javascript - 在 ng-if 中设置监视元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35600322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com