Я динамически создаю текстовые поля, поэтому мне также понадобятся динамические имена моделей, я решил, что должен использовать его идентификатор, поскольку он идентичен.
У меня есть это текстовое поле:
<input type="text" ng-init="scope[child.Root.Id] = ''" ng-model="scope[child.Root.Id]" />
Текстовое поле должно быть привязано к значению Child.Root.Id, похоже, это работает, так как следующие примеры работают отлично:
<p ng-hide="scope[child.Root.Id] == 123">This is a test.</p>
<p ng-hide="scope[child.Root.QuestionModel.ItemId] == 123">This is a test.</p>
Оба этих идентификатора имеют одинаковое значение. И текст скрывается, когда в текстовом поле набирается «123».
Однако мне нужно скрыть что-то еще, и в этом месте я не могу использовать child.Root.id, но у меня есть child.Root.ParentId с тем же значением:
<p ng-hide="scope[child.Root.ParentId] == 123">This is also a Test!</p>
Это не работает, что я делаю не так?
Это мой первый проект на Angular, поэтому у меня мало опыта.
Заранее спасибо.
редактировать:
<div ng-app="myApp" ng-controller="ctrl">
@*Start myApp-html-html*@
<script type="text/ng-template" id="field_renderer.html">
<!-- Group-->
<div ng-if="child.Root.GroupModel!=null">
<div ng-bind="child.Root.GroupModel.Header"></div>
<div ng-repeat="child in child.Children" ng-include="'field_renderer.html'"></div>
</div>
<!-- Question-->
<div class="Question" ng-if="child.Root.QuestionModel!=null" >
@Html.Partial("QuestionEntryPartialView")
<div ng-repeat="child in child.Children" ng-include="'field_renderer.html'"></div>
</div>
<!-- Decission-->
<div ng-if="child.Root.DecisionModel!=null">
<p ng-hide="scope[child.Root.ParentId] == 123">This is also a test!</p>
@*<div ng-repeat="child in child.Children" ng-include="'field_renderer.html'"></div>*@
</div>
</script>
<span ng-repeat="child in model.Children" ng-include="'field_renderer.html'">
<span ng-if="child.Root.GroupModel!=null" ng-bind=" child.root.groupmodel.header"></span>
<span ng-if="child.Root.QuestionModel!=null" ng-bind="child.Root.QuestionModel.Question"></span>
<span ng-if="child.Root.DecisionModel!=null" ng-bind-html="child.Root.DecisionModel.Description"></span>
</span>
@*End myApp*@
</div>
<script>
var app = angular.module('myApp', []);
app.controller('ctrl', function ($scope, $http, $sce) {
window.MY_SCOPE = $scope;
$http.post('@Url.Action("GetItemsModel", "Question")')
.success(function (response) {
$scope.model = response;
console.log(response);
});
});
</script>
QuestionEntrypartialView содержит:
<div>
<input type="text" ng-init="scope[child.Root.Id] = ''" ng-model="scope[child.Root.Id]"/>
</div>
<p ng-hide="scope[child.Root.Id] == 123">This is a test.</p>
<p ng-hide="scope[child.Root.QuestionModel.ItemId] == 123">This is a test.</p>