AngularJS $scope的赋值类型

var app = angular.module('app', []);

app.controller('commonCtrl', function($scope){
    $scope.data.chart = [xxxxx]; 
    //$scope.data = [xxxxx];
})

//这2种在$scope上面不同的赋值方法有什么实际的区别呢?
阅读 4.9k
2 个回答

第一个data是一个 对象
第二个data只是一个变量算是angular当前scope下的 原始数据 。
就好比

window.a.data=[xxxx];
window.a=[xxxx];

至于为什么前者在angular中更常见
主要是因为JS prototypal inheritance..ng-repeat, ng-switch, ng-view, ng-include, isolate scope等等会创建新的scope childScope = $scope.$new() 对于父scope上的原始数据类型 就没法实现双向绑定了..

$scope.data.chart 是 data:{chart:[xxxxxx]}
这个data里面还可以设置其他属性 如

data:{
    chart:[xxxxxx],
    chart2:[yyyyyy],
    chart3:[zzzzzz]
}

$scope.data 是 data:[xxxxxx]
这个data就只能是个[]数组了

都是json数据

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题