动态添加的无线电输入不会触发ng-show

时间:2014-09-25 23:54:00

标签: angularjs angularjs-ng-repeat ng-show

好的伙计们,这是我的问题:

我必须制作类别列表,这些类别在选择时仅显示该类别的元素(并隐藏休息)。我决定使用单选按钮/每个类别都有自己的单选按钮。

下一步是添加类别的代码:

APP.js

controller('FamiliesCtrl', function($scope) {
    $scope.families = ['All', 'Stark', 'Lannister'....];
    $scope.selfamily = {selfam: 'All'};
}).

HTML

<form ng-controller="FamiliesCtrl"> 
    <input type="radio" ng-model="selfamily.selfam" ng-repeat="family in families" ng-value="family" name="selfam">    
</form>

我正在尝试在html中触发ng-show,其中包含下一个代码:

<div id="characters" class="row col-xs-9" ng-controller="CharacteresCtrl">
        <div class="character col-xs-3" ng-repeat="character in characters | orderBy:sortParameter | limitTo: 120" char-image="{{character.picture}}" ng-show="selfamily.selfam === '{{character.house}}' || selfamily.selfam === 'All'">
               <h1>{{character.name}}</h1>
        </div>          
</div>  

好的,现在。如果我以这种格式手动插入类别,这不起作用:

<input class="checkboxHidden" id="first" type="radio" name="selfam" ng-model="selfamily.selfam" value="All">
    ... and so on...

IT工作。 非常感谢您的帮助。如果我需要提供更多代码,请告诉我。

总结一下,dinamically / programatically添加的类别在ng-show上没有任何功能,而手动添加的工作正常......

1 个答案:

答案 0 :(得分:0)

您不需要插值来访问character.house的值。这应该有效:

ng-show="selfamily.selfam === character.house || selfamily.selfam === 'All'"

...

仔细查看代码,单选按钮设置的值存在于与字符列表不同的控制器中。您必须为所有值使用单个控制器,或使用服务在控制器之间共享值。