【问题标题】:Ng-init fails to init value on loadNg-init 在加载时无法初始化值
【发布时间】:2016-02-04 11:20:19
【问题描述】:

将 ng-init 与数组结合使用时,永远不会有 init 值。在尝试了所有可能的选项后,我希望有人能找到解决这个问题的方法。

html

<select class="update-invisible" ng-model="user.level" ng-init="user.level" ng-change="updateUserlevel(user)" ng-options="userlevel.id as userlevel.label for userlevel in userlevels track by userlevel.id"></select>

注意:ngmodel (user.level) 是一个整数,用于指定用户信息对象中的当前用户级别。在此对象中,必须更新用户级别才能更改用户权限。

userlevels 对象,将 user.level int 匹配到一个字符串显示前端

$scope.userlevels = [{
        id: 1,
        label: 'Regular user'
    },{
        id: 2,
        label: 'Administrator'
    }];

【问题讨论】:

  • 你能创建一个小提琴来演示你的问题吗?看来您使用 ng-init 的方式有误。
  • 问题在于您的跟踪。你真的需要跟踪吗?

标签: angularjs angular-ngmodel ng-init


【解决方案1】:

您应该使用ng-init 来评估角度表达式。以下片段将user 范围对象的level 属性设置为5。

<div ng-init="user.level = 5">

【讨论】:

    【解决方案2】:

    问题在于您的轨道,删除轨道然后它会起作用

    <select class="update-invisible" ng-model="user.level = 1" ng-init="user.level" ng-change="updateUserlevel(user)" ng-options="userlevel.id as userlevel.label for userlevel in userlevels"></select>
    

    OR-ELSE

    <select class="update-invisible" ng-model="user.level" ng-init="user.level = 1" ng-change="updateUserlevel(user)" ng-options="userlevel.id as userlevel.label for userlevel in userlevels track by userlevel.id">
    <option value="">--Select one Option--</option>
    </select>
    

    表示包含您自己的默认选项标签。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-27
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-22
      • 1970-01-01
      相关资源
      最近更新 更多