我在$ scope上有相同的选项对象,我想多次使用它。如何区分具有相同名称的对象?这恰好是有角度的。
$scope.options = {
chart: {
type: 'Chart1',
height: 450,
width:600
}
};
$scope.options = {
chart: {
type: 'Chart2',
height: 400,
width:100
}
};
HTML
<myOptions=**"options"**></myOptions>
我想也许我可以将它们分配给初学者的变量?
答案 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 );