角度绑定功能?

时间:2017-04-10 11:05:40

标签: javascript angularjs

我正在使用Angular 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?

2 个答案:

答案 0 :(得分:0)

而是这样做:

$scope.myFunction = function(obj) { // passed value false;
  $scope.myobj.value = !obj; // !false === true
  console.log($scope.myobj); // outputs { value : true }
};
你做了什么?

obj = true;这个声明了一个布尔值为true的全局对象,它对你的代码没有任何影响。相反,您必须使用与$scope.myobj相同的方法更新!obj

答案 1 :(得分:0)

当您将值类型传递给函数时,尝试设置范围对象的方式是错误的,

例如:如果myobj.value的值为true / false ..你正在简单地传递这个值而不是这个变量的引用。

您应该设置如下所示的值

$scope.myFunction = function(obj) {
   $scope.myobj = true;
  console.log($scope.myobj);
}

只需传递myObj,如下所示

ng-mouseover="myFunction(myobj)" ng-show="myobj.value"

然后按照下面的方式设置值

$scope.myFunction = function(obj) {
   obj.value = true;
  console.log($scope.myobj);
}