【问题标题】:data-ng-bind from $scope controller来自 $scope 控制器的 data-ng-bind
【发布时间】:2015-07-23 11:46:23
【问题描述】:

我迷路了,你能帮帮我吗?

我在 $scope 中有一个从 JSON 文件中检索到的值:

在控制器中:

$scope.scopeTitle = title;

在 JSON 文件中:

"title": "fruit.ID || 'Empty'"

fruit.ID 是从后端检索的,我想在我的 HTML 中显示它的 ID。

如果在我的 HTML 中我做某事,一切都很好:

<span class="navbar-brand"  data-ng-bind="fruit.ID || 'Empty'" />

HTML 上的结果是:

FRUIT/12 or Empty <- and it's good

如果我想通过 $scope 传递它,像这样:

<span class="navbar-brand"  data-ng-bind='scopeTitle' />

它不起作用,HTML 上的结果是:

fruit.ID || 'Empty' <- it's not good

我的 HTML 是在指令模板中生成的,我正在使用 $compile 函数来编译 HTML 代码。

如何正确编写ng-bind表达式以通过$scope实现结果?

【问题讨论】:

  • 您可以尝试使用$eval 看看它是否有效。在 Angular 表达式中计算字符串几乎是不可能的。你可以查看$evalhere

标签: javascript angularjs compilation scope ng-bind


【解决方案1】:

尝试在控制器中使用 $scope.$eval 并使用它来声明 scopeTitle

$scope.scopeTitle = $scope.$eval(title);

**更新:* 您可以看到您将“fruit.ID || 'Empty'” 作为字符串分配为表达式,因此您需要使用 $eval

为什么不使用这样的东西

<span class="navbar-brand">{{scopeTitle}}</span>

【讨论】:

  • $eval 存在问题。我收到一个错误:Unknown provider: $evalProvider &lt;- $eval,但我将$eval 注入到我的控制器中。 I can't use just {{scopeTitle}} 因为它不会从后端绑定(我也试过了,它不起作用)
  • 对不起,我的坏人,我修好了
  • 它不是服务它是范围内的功能,我写错了
  • 它工作得很好!这就是我想要的。非常感谢! :D
【解决方案2】:

试试

data-ng-bind={{scopeTitle}}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-01
    • 2017-02-11
    • 2015-03-05
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多