aurelia - 在 Aurelia View 中使用文字 JavaScript 值

标签 aurelia

我正在尝试通过使用“if”模板 Controller 来隐藏我的组件。问题是它是可见的,即使我把 false 放进去:

<template if.bind="${false}">
zzzzzzzz
</template>

if.bind="false"和没有绑定(bind)的两种情况都会带来相同的结果。难道我做错了什么?如果没有,您能否指出 aurelia 代码调试可以帮助我获得线索?

最好的问候,尤金。

最佳答案

插值

使用 if.bind向 Aurelia 发出信号以尝试评估表达式。因此,您不需要使用插值语法。 当您将数据注入(inject)非 Aurelia 管理的属性时,您只想使用插值。 典型的用例是将文本注入(inject)任意元素。
<p>Welcome to my website, you are the ${visitorCount} visitor!</p>
你也可以在其他你想任意注入(inject)数据的地方使用插值,包括 html 属性。
<input placeholder="${currentRecordType}" />
插值是 单向捆绑。在这里阅读更多:http://aurelia.io/docs.html#string-interpolation

绑定(bind)

现在,绑定(bind)语法用于 Hook Aurelia 中启用的行为。开箱即用,这包括一些模板逻辑、一些属性行为和一些其他自定义的东西。

每个属性都旨在检查它的使用位置以及应该如何驱动它。例如,以下绑定(bind)将是单向的,因为它不接受输入并且仅作为单向变量绑定(bind)才有意义。
<div if.bind="sectionEnabled"></div>
但是,以下绑定(bind)将是双向的,因为它接受输入,因此通常以双向方式运行。
<input value.bind="firstName />
但是请注意,没有语法可以说“这是一个变量”。事实上,Aurelia 假设您想要传入一个变量。如果你不这样做,例如在第二种情况下,你就不需要 Aurelia,你只需写:
<input value="firstName" />
您可以在此处阅读有关绑定(bind)语法的更多信息:http://aurelia.io/docs.html#databinding

答案

在您的情况下,您通过尝试绑定(bind)文字值采取了错误的方法。 Aurelia 正在寻找一个名为 ${false} 的变量。/false并且很可能找不到它。您将需要在 viewModel 中创建一个变量来绑定(bind)并指示您的 View 绑定(bind)到它:

View 模型

class viewModel {
  ...
  constructor() {
    this.showTemplate = true;
  }
}

查看
<template>
  <div if.bind="showTemplate">
    ... 
  </div>
</template>

关于aurelia - 在 Aurelia View 中使用文字 JavaScript 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29012855/

相关文章:

javascript - 如何设置一个工厂函数来实现它在Typescript中生成的类的参数调用签名?

javascript - 弹出对话框但取消并确定不是功能

javascript - 错误 : container has not been made global - how to solve?

javascript - 语法错误: Unexpected token < in JSON Aurelia

html - Aurelia:完整性检查模板 html?

single-page-application - 将单独的 Aurelia 应用程序拼接在一起

parameters - 如何在 Aurelia 中动态绑定(bind) route-href 参数?

javascript - 在 Aurelia CLI(当前版本)中使用 materialize.css (0.97.7) 时出错

javascript - Font Awesome 5 图标的类绑定(bind)更改不影响图标

Aurelia - click.delegate 错误 - 说该函数不是函数