【问题标题】:Setting Value for Dynamic ngModel inside ngRepeat在 ngRepeat 中为动态 ngModel 设置值
【发布时间】:2016-02-06 07:22:06
【问题描述】:

如何在 ng-repeat 中设置动态创建的 ng-model 的值?

我正在尝试将每个动态 ng-model 设置为 truefalse

html文件

<md-list-item ng-repeat="awayTeamPlayer in ulineup.awayTeamPlayersLineup ">
    <md-checkbox ng-model="ulineup.awayTeamPlayersPlayed[awayTeamPlayer.player]"></md-checkbox>
    {{awayTeamPlayer.player}}
</md-list-item>

控制器文件

(function() {

    angular
        .module('app')
        .controller('UpdateLineUpController',
                    ['$routeParams', '$firebaseArray', 'FIREBASE_URL',
                    function($routeParams, $firebaseArray, FIREBASE_URL) {

            var vm = this;
            var gameId = $routeParams.gameId;
            var lineupId = $routeParams.lineupId;
            var awayTeamPlayersLineupRef = new Firebase(FIREBASE_URL + 'games/' + gameId + '/lineup/' + lineupId + '/awayTeamPlayersLineup');
            vm.awayTeamPlayersLineup = $firebaseArray(awayTeamPlayersLineupRef);

            // tried the following but that doesn't work
            angular.forEach(vm.awayTeamPlayersLineup, function(value, key) {
                if(value.played === true) {
                    // trying to set ng-model value to true gives me the following error
                    // TypeError: Cannot set property 'Mark' of undefined
                    vm.awayTeamPlayersPlayed[value.player] = true;
                } else {
                    vm.awayTeamPlayersPlayed[value.player] = false;
                }
            });

        }]);

})();

【问题讨论】:

  • 你试过在重复中使用 ng-init 吗?

标签: javascript angularjs angularjs-ng-repeat angular-ngmodel


【解决方案1】:

这里尝试使用 init 在内存中创建属性。

<md-list-item ng-repeat="awayTeamPlayer in ulineup.awayTeamPlayersLineup ">
<md-checkbox ng-init="dynamicProp = 'whatever'" ng-model="ulineup.awayTeamPlayersPlayed[awayTeamPlayer.player]"></md-checkbox>
{{awayTeamPlayer.player}}
</md-list-item>

【讨论】:

  • 我试过ng-init,但它对我不起作用。我尝试了以下代码&lt;md-checkbox ng-init="ulineup.awayTeamPlayersPlayed[awayTeamPlayer.player] = (awayTeamPlayer.played === 'yes') ? true : false" ng-model="ulineup.awayTeamPlayersPlayed[awayTeamPlayer.player]"&gt;&lt;/md-checkbox&gt; 我稍微修改了我的问题以澄清我想要实现的目标。
猜你喜欢
  • 2016-10-17
  • 1970-01-01
  • 1970-01-01
  • 2018-09-05
  • 2015-12-06
  • 1970-01-01
  • 2019-02-19
  • 2023-03-22
  • 1970-01-01
相关资源
最近更新 更多