【发布时间】:2016-11-05 11:20:57
【问题描述】:
在来自Step 3 of AngularJS Tutorial 的伟大理论sn-ps 中,那段让我想知道:
- 作用域,将我们的控制器和模板粘合在一起 一起变成一个动态的视图,不与其他部分隔离 页。这意味着一个随机的、不相关的变化 页面的不同部分(例如属性名称冲突)可能有 对我们的视图产生意想不到且难以调试的副作用。
(同一链接中未引用的第 1 部分非常清楚)
我无法想象一个真实的代码示例来说明引用文本中显示的问题。你能给我看一个这样的例子吗?
我自己的猜测是基于继承的作用域:
<!doctype html>
<html lang="en" ng-app="phonecatApp">
<head>
...
</head>
<body>
<div ng-controller="PhoneListController">
{{secretObject.dontDareToTouchThat}}
<div ng-controller="PhoneListTwoController">
<ul ng-click="touchThat()">
<li ng-repeat="phone in phones" >
<span>{{phone.name}}</span>
<p>{{phone.snippet}}</p>
</li>
</ul>
</div>
</div>
</body>
</html>
控制器的逻辑:
'use strict';
angular.module('phonecatApp', [])
.controller('PhoneListController', function PhoneListController($scope) {
$scope.secretObject = {
dontDareToTouchThat: 'I"m pure and beautiful'
}
}).controller('PhoneListTwoController', function PhoneListTwoController($scope) {
$scope.touchThat = function(){
$scope.secretObject.dontDareToTouchThat = 'Derp';
}
$scope.phones = [ ... ];
});
但我完全不确定,因为PhoneListTwoController 的可能操作看起来不像“页面不同部分的随机、不相关的变化”。一个作用域在另一个作用域内,操纵外部作用域,我认为作者的意思有所不同,例如两个同级作用域相互混淆。
所以,我再次请你用相关的代码示例来说明引用的段落。
【问题讨论】:
-
我手头没有代码示例。但是您看过这些文档吗? docs.angularjs.org/guide/scope#scope-hierarchies
-
谢谢康斯坦丁,我有!我不确定本教程的作者是指引用文本中的范围层次结构,因此是这个问题。
-
@fyodorananiev,顺便说一句,如果您必须提出任何改进建议以使初学者更容易理解此(或本教程的任何其他部分),非常欢迎您提交请求请求GitHub :)
-
@ExpertSystem 非常感谢您的建议!如果我将来想出一些改写本教程的想法,我将非常荣幸和高兴。
标签: javascript angularjs inheritance scope