【问题标题】:AngularJs selectors?AngularJs 选择器?
【发布时间】:2014-11-19 13:06:49
【问题描述】:

AngularJs 如何在不需要/使用脚本标签的情况下在 HTML 中制作它的选择器? 我已经通过角度分配在 html 中看到了这种情况:

 {{'Something...'}}

没有脚本标签怎么可能?

【问题讨论】:

  • 不可能,脚本应该放在别的地方
  • 采取一个非常非常基本的水平,考虑以下几点:template 包含你的 html 有{{foo}},角度有template.replace("{{foo}}", "bar")。当然,Angular 做的远不止这些,比如实际解析 {{}} 内部的内容,看看它是否需要执行任何额外的逻辑。
  • 如果我错了,请纠正我,但它取代了大括号?
  • 是的。花括号没有作为 javascript 执行,而是 angular 读取它,根据它的内容执行函数,然后用结果替换它。
  • 谢谢,我现在明白了。

标签: javascript html angularjs css-selectors


【解决方案1】:

把它想象成一个模板系统。您的 html 是模板,控制器是您在 Angular js 中定义的...控制器。

您的 html 中的 {{something}} 事物通常是对控制器范围内的属性的引用。

$scope.something = "Hello World!";

Angular 只是将 html 中的 {{something}} 条目替换为实际内容,例如 theHtml.replace("{{something}}", $scope.something)。 Angular 还可以解释括号内的基本 javascript,因此您可以执行 <p>{{something + ' Today\'s date is: ' + new Date()}}</p> 之类的操作,并将结果实际输出到页面而不是括号。

这仅在非常基本的层面上解释了括号内的内容如何被实际内容替换,更多地解释诸如如何完成数据绑定对于 SO 上的单个答案来说太过分了。

【讨论】:

    【解决方案2】:

    AngularJs 加载后,它会扫描你的 html 文档。对于每个指令或angular 标记,它都会应用一个watcher,它会在该值发生更改时发送通知,并且通过接收此通知,angular 知道UI 必须尽快更新。

    所以,对于Angular{{}},这将在特定时间得到验证。 (比如directive

    您可以阅读有关此here 的更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-05
      • 2015-10-26
      相关资源
      最近更新 更多