Angular:$ scope.variable上的if-operations

时间:2017-01-04 16:28:48

标签: javascript html angularjs scope

我想基于$ scope值运行一个函数。在我的控制器中,我有:

 $scope.value = "";
 $scope.selector = function(info) { 
    if ($scope.value === "") {
       $scope.value = info;
    } else {
       $scope.value = "";
    }
 }

该功能在不同图像的ng-click时触发,例如:

<img ng-src="..." ng-click="selector(info)">

我的问题是if-operations似乎不适用于$ scope值。我也尝试过:

 $scope.$watch('value', function(val) {
    if(val === "") {
       $scope.value = info;
    }
 }

如果它在函数外部,则可以工作,但如果我将它放在选择器函数中则不行。总是欢迎更好的方法。谢谢你的任何解释。

2 个答案:

答案 0 :(得分:1)

您需要将参数从视图传递给函数,因为您的函数需要输入参数

将视图更改为,

img ng-src="..." ng-click="selector(value)">

答案 1 :(得分:1)

尝试将值包含在对象中。在某些情况下,Angular不能&#34;看&#34;变量发生了变化。

所以,试着保留类似的东西:

$scope.value = { value: "" };

并相应地更改其余代码。

我在代码中使用了一些修复程序并使用了我对您说的内容: Running example

在这个例子中你可以看到val ===&#34;&#34;返回真假。