【发布时间】:2015-10-28 05:50:38
【问题描述】:
我想在 Angular 2 应用程序的输入标签中定义一个局部变量:
input(#sometext)
button((click)="addTechnology(sometext.value)") Add
我期待的输出是:
<input #sometext/>
<button (click)="addTechnology(sometext.value)">Add</button>
然而真正的输出是(注意额外的="#sometext"):
<input #sometext="#sometext"/>
<button (click)="addTechnology(sometext.value)">Add</button>
这样,Angular 2 会抛出以下错误,很可能是由于 ="#sometext":
Cannot find directive with exportAs = '#sometext'
Error: Cannot find directive with exportAs = '#sometext'
at new BaseException (https://code.angularjs.org/2.0.0-alpha.28/angular2.dev.js:7248:25)
at _findDirectiveIndexByExportAs (https://code.angularjs.org/2.0.0-alpha.28/angular2.dev.js:12454:13)
at https://code.angularjs.org/2.0.0-alpha.28/angular2.dev.js:12435:22
at Map.forEach (native)
at Function.execute.MapWrapper.forEach (https://code.angularjs.org/2.0.0-alpha.28/angular2.dev.js:7614:15)
at createDirectiveVariableBindings (https://code.angularjs.org/2.0.0-alpha.28/angular2.dev.js:12434:16)
at _createProtoElementInjector (https://code.angularjs.org/2.0.0-alpha.28/angular2.dev.js:12414:39)
at _createElementBinders (https://code.angularjs.org/2.0.0-alpha.28/angular2.dev.js:12391:34)
at _createAppProtoView (https://code.angularjs.org/2.0.0-alpha.28/angular2.dev.js:12331:5)
at https://code.angularjs.org/2.0.0-alpha.28/angular2.dev.js:12641:32
你知道有什么方法可以阻止 Jade 用额外的="#sometext" 完成属性吗?
【问题讨论】:
-
可能是
# -
根据文档angular.io/docs/js/latest/guide/user-input.html,这是定义变量的方式,不是吗?
-
问题是大写。浏览器在 Angular 编译之前将其转换为小写,他们对此无能为力。将其更改为
#sometext。看到这个github.com/angular/angular/issues/1447 -
与#sometext 相同的错误 :-(
-
我已经用实际代码更新了问题。我没有意识到我的模板引擎 Jade 生成标记的方式与我预期的不同。
标签: javascript pug angular