我有这个循环在屏幕上显示我想要的所有问题。我使用指令附加到此列表,这些更新显示正常。
{{Questions}}
<div id="items" style="border: 3px solid; border-radius:5px; border-color: #808080; min-height: 500px; padding: 10px;">
<div question-type ng-repeat="Question in Questions track by $index"></div>
</div>
然而,当我点击一个问题时,我会在页面的其他地方显示该问题的内容,并带有可编辑的字段,以便您进行修改。
您可以在上面的代码中看到我将问题json对象显示在循环上方的屏幕上,这正确地显示了我正在键入的更新,但循环的内容却没有。循环中的问题将保持原样,而不是更新。
任何想法为什么对象似乎在更新,但它对使用它的ng-repeat没有影响?
修改
这是我使用ng-repeat
的指令app.directive('questionType', function ($http, $compile) {
return {
restrict: 'AE',
link: function (scope, element, attr, model) {
switch (scope.Question.inputType) {
case 'checkbox':
//element.append('<input type="checkbox" ng-model="Question.checked"/><button ng-if="input.checked" >X</button>');
break;
case 'text':
var strElm = '<div class="form-group" data-ng-click="selectProperties($index)"><label class="col-lg-12 control-label" style="text-align: left;">' + scope.Question.label + '</label><div class="col-lg-12"><input type="text" class="form-control" placeholder=' + scope.Question.placeholder + ' readonly></div></div>';
var compiledHtml = $compile(strElm)(scope);
element.append(compiledHtml);
break;
}
}
};
});
第二次编辑
我没有正确绑定。得到了这条线 -
var strElm = '<div class="form-group" data-ng-click="selectProperties($index, obj.Questions)"><label class="col-lg-12 control-label" style="text-align: left;" >{{Question.label}}</label><div class="col-lg-12"><input type="text" class="form-control" placeholder=' + scope.Question.placeholder + ' readonly ng-model="Question.placeholder"></div></div>';
答案 0 :(得分:1)
你的ng-repeat会创建一个孤立的范围。
将问题放在空对象中并使用它。
示例:
Dim KonRes(3) As Integer
Dim UserRes(3) As Integer
Dim YelRed(3) As Integer
KonRes(0) = 1
KonRes(1) = 2
KonRes(2) = 3
KonRes(3) = 4
UserRes(0) = 4
UserRes(1) = 2
UserRes(2) = 2
UserRes(3) = 1
Dim Uindex As Integer = 0
For Each item In UserRes
Dim Kindex As Integer = 0
For Each i In KonRes
If item = i Then
If Kindex = Uindex Then
YelRed(Uindex) = 1
Else
YelRed(Uindex) = 2
End If
End If
Kindex += 1
Next
Uindex += 1
Next
在HTML中,您必须在ng-repeat中将其引用为$scope.obj = {};
$scope.obj.Questions = your questions json.
答案 1 :(得分:0)
尝试更改您的代码:
<div ng-repeat="Question in Questions track by $index">
<question-type question="Question"></question-type>
</div>
也改变你的指令定义