【问题标题】:ngModel : constexpr error in my angularjs app, but same code on jsfiddle is goodngModel:我的 angularjs 应用程序中的 constexpr 错误,但 jsfiddle 上的相同代码很好
【发布时间】:2015-08-07 18:31:14
【问题描述】:

我在my app 中有一个非常令人惊讶的错误,代码如下:

<div class="ui toggle checkbox">
    <input type="checkbox" ng-model="pimp.init.carte.choice_1" ng-checked="pimp.init.carte.choice_1 == 'online'" ng-true-value="online" ng-false-value="offline" />
    <label>OSM 
        <span ng-show="pimp.init.carte.choice_1 == 'online'">en ligne</span>
        <span ng-show="pimp.init.carte.choice_1 == 'offline'">hors ligne</span>
    </label>{{pimp.init.carte.choice_1}}
</div>

在控制器中,pimp.init.carte.choice_1 默认设置为“在线”。

我有这个错误:

ngModel:constexpr] http://errors.angularjs.org/1.3.11/ngModel/constexpr?p0=ngTrueValue&p1=online

我尝试repeat the behavior in a jsfiddle,但这里似乎没问题,所以我不明白为什么它在我的应用程序中不起作用。

怎么了?

【问题讨论】:

  • mb 与其他包含的库的 conflist 相关吗?即jquery

标签: angularjs checkbox version


【解决方案1】:

您在应用中使用 Angular 1.3.11,在示例中使用 1.2.1。

您收到错误是因为 1.3.0-beta.15 中引入了以下更改:

ngTrueValue 和 ngFalseValue 现在支持解析表达式 解析器确定为常量值。

重大变化:

以前,这些属性总是被视为字符串。 但是,它们现在被解析为表达式,如果出现 表达式是非常量的。

要将非常量字符串转换为常量表达式,只需换行 它们用一对额外的引号括起来,如下所示:

<input type="checkbox" ng-model="..." ng-true-value="'truthyValue'">

在您的情况下更改以下内容:

ng-true-value="online" ng-false-value="offline"

收件人:

ng-true-value="'online'" ng-false-value="'offline'"

演示: http://plnkr.co/edit/yvTlKwa0NlWZoyWXWVXH?p=preview

【讨论】:

  • 是的,没有更多错误,但是当我切换复选框时模型没有更新
  • 我的回答是正确的。我查看了您的网站,您现在遇到的问题是因为您正在使用语义 UI 复选框。当你点击它时,底层的复选框没有被点击,所以 Angular 不会改变模型。
  • 如果您找不到解决方案,您应该发布有关此新问题的另一个问题,或查看以下内容:ngmodules.org/modules/angular-semantic-ui
猜你喜欢
  • 2013-04-10
  • 1970-01-01
  • 1970-01-01
  • 2016-01-09
  • 1970-01-01
  • 2019-05-12
  • 2012-05-05
  • 2011-05-04
  • 1970-01-01
相关资源
最近更新 更多