具有独立作用域的指令中的表单输入:如何将ngModel设置为正确的作用域
Form input in a directive with isolated scope: How to set ngModel to the correct scope?
我尝试显示不同问题的列表。每个问题都有自己的形式输入。所以我写了一个指令来设置这些表单输入。但是在input
标记中设置ngModel
不会更新隔离的作用域。
我目前尝试过的:
<body ng-app="stepModule" ng-controller="ChallengeCtrl">
<div question step="step"></div>
</body>
以及JS:
angular.module('stepModule', [])
.directive('question', function() {
return {
restrict: 'A',
replace: true,
scope: {
step: '='
},
template: "<form ng-submit='"submit()'">'n
Step = {{step}}'n
<label for='"question'">Question</label>'n
<input ngModel='"step.question'" ng-required='"true'" name='"question'" />'n
<label for='"answerswer'">Answer</label>'n
<input ngModel='"step.answer'" ng-required='"true'" name='"answerswer'" />'n
<input type='"submit'" value='"Save (extract out, should save automatically)'" />'n
</form>",
controller: [
"$scope", "$element", "$attrs", function($scope, $element, $attrs) {
$scope.submit = function() {
console.log($scope.step.question);
console.log($scope.step.answer);
};
}
]
};
});
这里console.log
将输出$scope.step
的原始内容而不是新值。这是一个Plunker展示的行为。
有没有办法让ngModel
使用指令范围?或者我只是错过了什么/滥用AngularJS(这一点也不会让我感到惊讶…)
ngModel的属性语法为ng-model
,即ng-model='"step.answer'"
相关文章:
- 监视函数从服务返回不起作用,但作用域函数起作用
- 将作用域存储在JSON中
- 从控制器继承了隔离的作用域以生成可重用的指令
- 从ng模板访问作用域
- 调用私有作用域
- 对父作用域的指令更新延迟了一步
- 正在$rootScope上达到控制器作用域$在内部控制器上
- 两个指令创建新的继承的和隔离的作用域-元素得到哪个
- 这两个关于 JavaScript 作用域链的例子有什么区别?
- 在具有命名作用域的自定义Polymer元素中隐藏表行
- AngularJS指令隔离作用域
- Angularjs:修改js中的作用域,稍后在页面中使用
- 访问多个指令的隔离作用域
- ngModel 的 angularjs 作用域未按预期工作
- 使用ngOptions&具有多个对象的ngModel&作用域
- 具有独立作用域的指令中的表单输入:如何将ngModel设置为正确的作用域
- 为什么我得到一个未定义的作用域.ngModel在angularJS指令的link函数中
- AngularJs1.x中的指令:隔离作用域与要求ngModel
- 如何在AngularJs中通过具有隔离作用域的多个指令绑定ngModel
- $watch-ngModel来自使用隔离作用域的指令内部