Angularjs 如果从范围中分离,为什么要使用ng?
ng是否正在从范围中分离输入?或者我只是做错了什么? 使用时:Angularjs 如果从范围中分离,为什么要使用ng?,angularjs,Angularjs,ng是否正在从范围中分离输入?或者我只是做错了什么? 使用时: <input ng-if="1===1" ng-model="name"> 输入的更改不会影响范围。尝试移除ng if和walla! 那是什么 ng如果创建了一个新的子作用域,那么您将在子作用域而不是原始作用域中编辑模型。如果您将其更改为$parent.name,它就可以正常工作 下面是Angular团队的一位成员的推理: ng开关创建新作用域的原因是使用了作用域 用于内存管理 当交换机分支被移除时,我们需要移除所
<input ng-if="1===1" ng-model="name">
输入的更改不会影响范围。尝试移除ng if和walla!
那是什么
ng如果
创建了一个新的子作用域,那么您将在子作用域而不是原始作用域中编辑模型。如果您将其更改为$parent.name
,它就可以正常工作
下面是Angular团队的一位成员的推理:
ng开关创建新作用域的原因是使用了作用域
用于内存管理
当交换机分支被移除时,我们需要移除所有
绑定以及所有单击侦听器。这一切都完成了
通过范围
换言之,每当DOM结构发生变化时,一个新的作用域
需要被创造出来,这样我们才能在自己之后适当地清理
$20Dos$20ng开关/angular/n_PlBtwemJg/kkk6me3jde88j由于
ng如果创建一个隔离作用域,它将无法覆盖其父作用域的属性。这就是原型继承的工作原理
虽然您可以使用$parent
挖掘封闭范围,但这是一个脆弱的解决方案,如果在层次结构中引入另一个级别,它将崩溃
相反,您不应该将属性直接放在作用域上,而应该将它们放在对象上
您可以进行更改以修复此问题:
app.controller('MainCtrl', function($scope) {
$scope.model = {
name: 'World'
}
});
及
你好{{model.name}}
请看我认为您在脆弱的结构和等级制度方面提出了一个很好的观点,这应该是公认的答案。
<body ng-controller="MainCtrl">
<input ng-if="1===1" ng-model="model.name">
<p>Hello {{model.name}}!</p>
</body>