如何在AngularJS中使用参数?

时间:2015-09-14 23:47:41

标签: angularjs

第一个功能是如何工作的,但第二个功能不起作用?

<p ng-style="colors.one">1</p>


$scope.turnOn = function()
    {
        $scope.colors.one = {color: "green"};
    }

$scope.turnOff = function(num)
    {
        $scope.colors.num = {color: "red"};
    }

$scope.turnOn();
$scope.turnOff(one);

修改 我尝试像你们建议的那样在$ scope.colors上添加num,但似乎还是无法弄明白。

$scope.turnOn = function(num)
    {
        $scope.colors[num] = {color: "green"};
    }

$scope.turnOff = function(num)
    {
        $scope.colors[num] = {color: "red"};
    }

我正在通过

调用这些函数
<button ng-switch-when='false' ng-click='turnOn(one)'>
<button ng-switch-when='true' ng-click='turnOff(one)'>

4 个答案:

答案 0 :(得分:2)

num未定义颜色。您可以像这样访问属性num。

$scope.colors[num] = {color: "red"};

答案 1 :(得分:1)

因为你想通过ng-click函数参数传递字符串"one"而不是范围属性one的值,以便以下列方式访问它:

<p ng-style="colors.one">1</p>

<button ng-switch-when='false' ng-click='turnOn("one")'>
<button ng-switch-when='true' ng-click='turnOff("one")'>

执行ng-click='turnOn(one)'时,它等同于调用函数turnOn,其值$scope.one在您的情况下没有任何价值,并且使用bracket notation只会将值赋给对象,即$scope.colors[num] = ...

答案 2 :(得分:0)

参数'num'与$ scope.colors.num

无关

应该是

$scope.colors[num] = {color: "red"};

答案 3 :(得分:0)

您必须使用不同的表示法引用变量属性名称:

$scope.turnOff = function(num) {
    $scope.colors[num] = {color: "red"};
};

应该有用。