在$ scope上调用相同的选项对象

时间:2016-09-24 20:54:08

标签: javascript angularjs object

我在$ scope上有相同的选项对象,我想多次使用它。如何区分具有相同名称的对象?这恰好是有角度的。

$scope.options = {
            chart: {
                type: 'Chart1',
                height: 450,
                width:600
            }
        };
 $scope.options = {
            chart: {
                type: 'Chart2',
                height: 400,
                width:100
            }
        };

HTML

 <myOptions=**"options"**></myOptions>

我想也许我可以将它们分配给初学者的变量?

3 个答案:

答案 0 :(得分:2)

没有理由对选项使用相同的$ scope.name。我建议你使用$ scope.optionsOne和$ scope.optionsTwo。否则,第二个$ scope.options会覆盖第一个$ scope.options,而你只剩下:

$ scope.options = {             图表:{                 类型:'Chart2',                 身高:400,                 宽度:100             }         };

祝你好运!

答案 1 :(得分:2)

据我所知,第二个“选项”对象将覆盖第一个。使用构造函数而不是对象文字会更好。声明函数并使用参数初始化值。例如:

 $scope.options = {
            myChart: function(param1,param2,param3) {
                type = param1;
                height = param2;
                width = param3;
            }
        };

$scope.options.myChart(val1,val2,val3);

可能有更好的解决方案。如果我错了,请有人纠正我。

答案 2 :(得分:0)

虽然我不确定上下文(一个对象应该覆盖另一个),如果要将对象保存在变量中,那么可以使用严格比较运算符:

var opt1 = $scope.options;

//after a possible change in value
if( opt1 === $scope.options ) doStuff(opt1); //note strict comparison
else doStuff( $scope.options )

否则,如果你知道你要找的[type]键,你可以查看:

if( $scope.options[type] == 'chart1' ) doStuff( $scope.options );