AngularJS将属性中的URL传递给指令的隔离范围 - 意外令牌':'

Mar*_*jes 6 javascript binding angularjs angularjs-directive angularjs-scope

我是AngularJS的新手,几天前刚开始使用它,如果问题本身不正确,请原谅我.

我遇到的问题是我想通过属性将URL参数传递给我的指令的隔离范围,但是:http://它的部分给我一个错误,说Syntax Error: Token ':' is an unexpected token at column 5 of the expression [http://...

指令的HTML部分(我称之为"它")是这样的:

<myDirective datasource="http://url"></myDirective>
Run Code Online (Sandbox Code Playgroud)

我将(?)绑定到这样的隔离范围:

scope: {
    dataSource: '=datasource'
}
Run Code Online (Sandbox Code Playgroud)

如果属性的值仅包含简单字符,则它可以工作.我怎么解决这个问题?

谢谢.

squ*_*oid 6

不要在指令中使用'='而是使用@,因为你正在传递普通字符串.

scope: {
    dataSource: '@datasource'
}
Run Code Online (Sandbox Code Playgroud)


Pan*_*kar 6

在你的情况下,angular正试图评估datasource属性的值.因为你提到了=ie变量的双向绑定.

如果您将URL包装在内'(单引号)将解决您的问题.因为提到的值会直接绑定到指令隔离范围变量.

标记

<my-directive datasource="'http://url'"></my-directive>
Run Code Online (Sandbox Code Playgroud)