这是我使用Angular 6创建的指令
myProSupMod.directive('dfct', ['$compile', function ($compile) {
return {
restrict: 'E',
scope: {
ngModel: '='
},
template: "<div class='divRow'><div class='divCell label-column'>
</div><div class='divCell'><input ng-model='ngModel' /></div></div>",
replace: true,
require: 'ngModel',
link: function ($scope, elem, attr, ctrl) {
$compile(elem)($scope.$parent);
}
}
}])
我正在像
这样从html调用指令<dfct ng-model="RootObjectName"></dfct>
HTML可以按预期方式呈现,但是更改文本字段的值时,作用域中的 RootObjectName 模型永远不会更新。
请帮助 谢谢
答案 0 :(得分:0)
花了将近3天的时间,我终于可以解决这个问题,这是我做的,以防万一对某人有帮助
这是指令
myProSupMod.directive('dfct', ['$compile', function ($compile) {
return {
restrict: 'E',
scope: {
model: '=ngModel',
type: '@type',
text:'@text'
},
template: "<div class='divRow'><div class='divCell label-column'>{{text}}
</div><div class='divCell'><input type='{{type}}' data-ng-model='model' />
</div>
</div>",
replace: true,
require: '^ngModel',
link: function ($scope, elem, attr, ctrl) {
$compile(elem)($scope.$parent);
}
}
}])
这是我需要的html
<div class="divRow" ng-repeat="c in Data.Controls">
<dfct ng-model='RootObject[""+c.ModelName+""]' type="
{{c.HTMLControlType}}" text="{{c.LabelText}}"></dfct>
</div>
如果有更好的方法,请告诉我