Javascript ui是否与ng模型冲突?
非常简单的代码:Javascript ui是否与ng模型冲突?,javascript,angularjs,angular-ngmodel,prototypal-inheritance,Javascript,Angularjs,Angular Ngmodel,Prototypal Inheritance,非常简单的代码: <div ui-if="showMemberId"> <input ng-model="memberId" ng-change="test()" id="memberId" name="memberId" class="text" type="text"> </div> 奇怪的是,ng更改起作用,但ng模型却不起作用。当我输入时,它只是将字符串SDF反复记录到控制台,因为模型没有改变 有什么想法吗?看起来像是
<div ui-if="showMemberId">
<input ng-model="memberId" ng-change="test()" id="memberId" name="memberId" class="text" type="text">
</div>
奇怪的是,ng更改
起作用,但ng模型却不起作用。当我输入时,它只是将字符串SDF
反复记录到控制台,因为模型没有改变
有什么想法吗?看起来像是ui,如果正在创建一个子作用域,就像ng,如果正在创建。因此,外部memberId
范围将不同于ui内部的ng model
,如果。
在这种情况下,在定义ng模型时,需要遵循dot规则
。基本上,当它创建一个子作用域时,它的原型继承自父作用域。而原型继承
作用于对象
类型而非基本类型
要使其工作,您需要在控制器内定义对象,如$scope.model={}
&定义其中的所有属性
标记
<div ui-if="showMemberId">
<input ng-model="model.memberId" ng-change="test()"
id="memberId" name="memberId" class="text" type="text"/>
</div>
我鼓励您使用ng if
,而不是像angular那样使用ui if
提供相同的功能
ui如果
是创建新范围的众多指令之一,并且由于您的ng模型
是一个原语,它将无法以对象的方式访问。这是angular中最常见的问题之一的一个例子,它总是通过“始终使用点”规则来解决。angular中的黄金规则是始终在ng model
中使用对象,因此您不会在原语上断开绑定进一步阅读:另外,除非我的事实是错误的,如果
已从框架的最新版本中删除,ui。@Aerovistae很高兴为您提供帮助。。谢谢:)
<div ui-if="showMemberId">
<input ng-model="model.memberId" ng-change="test()"
id="memberId" name="memberId" class="text" type="text"/>
</div>
$scope.model = {}; //made an object type model