我在角度使用手表,据说不应该使用手表。我使用以下代码
$scope.$watch('mysevice.function()', function(tilda) {
$scope.valueToShow = tilda ? true : false ;
});
我需要做什么才能重构?
EDITED 抱歉编辑问题 函数(蒂尔达)......
另外
我的代码工作正常。我感兴趣的是如何在不使用$ watch的情况下观看
答案 0 :(得分:0)
首先要小心你的函数中显示为未声明的变量tilda。
也许您在某处影响$ scope.tilda或执行全局变量,但它是您代码中的第一个问题。
然后,当你$scope.valueToShow = tilda
做出一个影响时,它就是真的,变量$ scope.valueToShow变得等于tilda。
$scope.$watch('mysevice.function()', function(online) {
$scope.valueToShow == tilda ? true : false ;
});
答案 1 :(得分:0)
如果要观察变量,则需要使用函数作为第一个参数并返回该变量。
var tilda;// be sure to declare variable
$scope.$watch(function() {
return tilda;
}, function(){
$scope.valueToShow = tilda ? true : false ;
});
也许更好的方法是使用函数来更改tilda
,并在该函数中也设置$scope.valueToShow
function setTilda(value){
tilda = value;
$scope.valueToShow = tilda;
}