我使用angular js指令生成了动态表单HTML,我想使用我提供的值(值可能来自数据库或数组)为生成的文本框分配值
当我没有动态发送任何参数时,它通常通过以下代码运行并将值分配给文本框
$scope.submitted = function() {
$scope.title = "submitted";
};
但是当我向表单发送动态值时,它就无法正常工作。
在单击并显示来自该函数的警报但该值未按模型分配给文本框时,从该指令调用该函数。 这是代码
$scope.submitted = function(par) {
alert(par);
$scope.title = par;
};
请查看以下plunker上的代码:
答案 0 :(得分:2)
问题是每个dynamic
指令都是在隔离的子范围内编译的。因此,当您稍后设置外部范围属性title
时,它不会影响本地指令范围。
你可以做的是在$scope.submitted
函数集ngRepeat
子范围标题内,并将此值传递给带有范围配置对象的指令:
$scope.submitted = function(par) {
this.title = par; // this points to individual ngRepeate scope object
};
并在指令配置中:
scope: {
title: '=model',
param1: '@',
formFn: '&'
},
并使用像这样的指令
<div dynamic param1="{{lang}}" form-fn="submitted(lang)" model="title"></div>