我正在尝试为url(
regex=r'^$',
view=AccountCreateView.as_view(),
name="create_account"
),
创建一个指令。我尝试使用AngularJS - Create a directive that uses ng-model提供的答案,但它对我不起作用。
我的CodePen在这里:http://codepen.io/colbroth/pen/QyMaQX/?editors=101。
该代码基于https://material.angularjs.org/latest/demo/autocomplete处的自动填充的Angular材质演示。我有多个页面,需要一个自动填充字段来选择一个状态。我不想为每个网页组件重复代码。
md-autocomplete
需要state-directive
输入,我需要md-autocomplete
状态才能在两种情况下反映相同的值。但是当我更新输入元素时,demoCtrl.selected
并不反映这一点,反之亦然。
state-directive
<input ng-model="demoCtrl.selectedState">
答案 0 :(得分:1)
你走在正确的轨道上。你的问题是你的模型是一个字符串 - 在javascript中是一个原语,但如果你想避免这些问题,ngModel
总是需要成为一个对象。
范围继承通常很简单,你甚至不需要知道它正在发生......直到你尝试双向数据绑定(即表单元素,ng-模型)到一个原语(例如,数字,字符串,布尔值)在子范围内从父范围定义。它没有像大多数人期望的那样工作。会发生什么是子范围获取其自己的属性,该属性隐藏/隐藏同名的父属性。这不是AngularJS正在做的事情 - 这就是JavaScript原型继承的工作原理。新的AngularJS开发人员通常没有意识到ng-repeat,ng-switch,ng-view和ng-include都会创建新的子范围,因此在涉及这些指令时经常会出现问题。 (有关问题的快速说明,请参阅此示例。)
通过遵循&#34;最佳实践&#34;可以很容易地避免使用原语这个问题。总是有一个&#39;。在您的ng模型中。
取自Understanding-Scopes 它还链接到this Youtube视频 - 3分钟的投入时间
function DemoCtrl() {
var self = this;
self.state = {
selected: "Maine"
};
}