第一个功能是如何工作的,但第二个功能不起作用?
<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)'>
答案 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"};
};
应该有用。