Biến đối tượng hoạt động do cách thức hoạt động thừa kế của nguyên mẫu JavaScript. ngInclude tạo ra phạm vi con của riêng mình. Phạm vi con này được thừa hưởng nguyên mẫu từ phạm vi cha mẹ.
Trong JavaScript, khi chúng tôi viết một cái gì đó như $scope.x = 22
trong phạm vi con, điều này tạo ra thuộc tính x
trên phạm vi $ con và gán giá trị 22 - chuỗi nguyên mẫu không được tham khảo ở đây, vì vậy phạm vi $ parent không thấy chuyện gì đã xảy ra.
Khi chúng tôi viết một cái gì đó như $scope.someObj.prop1 = 22
trên phạm vi con, nếu JavaScript không tìm thấy đối tượng someObj
trên phạm vi $ con, nó tham khảo chuỗi nguyên mẫu và $ scope tiếp theo trong chuỗi là phạm vi $ parent. Nếu someObj
tồn tại trên phạm vi $ parent, thì phạm vi $ parent được sửa đổi.
Như tôi đã đề cập trong một chú thích, sau SO câu hỏi và câu trả lời giải thích này chi tiết tất cả trong nhiều hơn nữa (với rất nhiều hình ảnh): What are the nuances of scope prototypal/prototypical inheritance in AngularJS?
Nguồn
2013-02-20 04:10:21
Xin xem http://stackoverflow.com/questions/14049480/what-are-the-nuances-of-scope-prototypal-prototypical-inheritance -in-angularjs/14049482 # 14049482 –
Câu trả lời hay, Mark. – jogloran