函数中的角度绑定?
问题描述:
我采用了棱角分明1.我有以下标记:函数中的角度绑定?
ng-mouseover="myFunction(myobj.value)" ng-show="myobj.value"
我有以下对象在我的控制器声明:
$scope.myobj = {
value: false
};
然后我的函数:
$scope.myFunction = function(obj) {
obj = true;
console.log($scope.myobj);
}
我期望它将$ scope.myobj.value设置为true,当我将鼠标悬停在元素上时,它不会。它似乎将它正确地绑定起来,因此它将它拾取为它是一个对象,但它不引用$ scope。我如何去做这件事,以便正确设置$ scope?
答
而是做到这一点:
$scope.myFunction = function(obj) { // passed value false;
$scope.myobj.value = !obj; // !false === true
console.log($scope.myobj); // outputs { value : true }
};
你干了什么?
obj = true;
这个声明了一个布尔值为true
的全局对象,它对你的代码没有影响。相反,您必须使用与!obj
相同的方法更新$scope.myobj
。
答
您要设置您的范围对象是错误的,因为你是传递一个值类型的运作方式,
为前:如果myobj.value的值是true/false..you的simpling传递这个值而不是这个变量的引用。
你应该设置如下图所示
$scope.myFunction = function(obj) {
$scope.myobj = true;
console.log($scope.myobj);
}
OR
只是通过MyObj中像下面
ng-mouseover="myFunction(myobj)" ng-show="myobj.value"
,然后设置的值要设置类似下面
方式的价值$scope.myFunction = function(obj) {
obj.value = true;
console.log($scope.myobj);
}
你可以直接在你的函数中传递对象....引用我的答案相同 –