我对Angular很新,我已经能够在我的项目中走得很远,但我遇到了一个小障碍。
我想解析一些字段数据,然后将ng-model应用到它,这样我就可以在字段中使用一些条件逻辑。 我确实有这个工作:
摆弄HTML逻辑: https://jsfiddle.net/sup3rmassvie/ws8r4zm5/
它使字段,更新输入变量和条件逻辑工作! (**将第一个字段设置为' 1'然后在选择中选择' First Choice'
问题是看起来非常混乱并且不容易移植到新文件,所以我想要做的就是在指令中写它。
指点指示: https://jsfiddle.net/sup3rmassvie/bzkypvoo/
但是,我无法让模型(范围??)正常工作。我自己尝试过很多东西,但我似乎无法在这里完成我需要做的事情,以便在{{1}中对新创建的输入进行ng-model指令工作。
*注意:我知道在第二笔中所有输入都是文本输入,我想先通过这部分
任何帮助都将不胜感激。
答案 0 :(得分:0)
想出来!
工作小提琴(仍然只显示文本元素):https://jsfiddle.net/sup3rmassvie/h7uxtr4q/
所以在我的控制器中我必须使用
来引用范围$scope.scopeReference = $scope;
然后我将其传递给<gf-form-fields fields="form.fields" model="scopeReference"></gf-form-fields>
然后在每个指令中,我使用scope属性将其作为“model”
传递.directive('gfFormFields', function ()
{
return {
restrict: 'E',
replace: true,
scope:
{
fields: '=',
model: '='
},
template: "<ul><gf-field ng-repeat='field in fields' field='field' model='model'></gf-field></ul>",
};
})
然后在最后一个指令中,我只是告诉它“你的范围现在是这个范围”
...
template: "<li class='gf-input'></li>",
link: function (scope, element)
{
var field = scope.field;
scope = scope.model;
scope.field = field;
...add attributes...
element.append($compile(fieldInput)(scope));
}
希望这有助于某人!