AngularJS:指令 - 传递字符串而不必使用引号

Max*_*aco 8 javascript angularjs angularjs-directive angularjs-scope

这是我创建的指令:

HTML:

<p-test something="'bla'"></p-test>
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

.directive('pTest', function() {
    return {
        scope: {
            something: '=?'
        },
        templateUrl: 'components/testTemplate.html',
        controller: 'testController'
    };
});
Run Code Online (Sandbox Code Playgroud)

我希望能够通过以下方式将'bla'作为不带''的字符串传递:

<p-test something="bla"></p-test>
Run Code Online (Sandbox Code Playgroud)

我知道通过链接中的属性参数可以实现,但在这种情况下它是无关紧要的(如果我错了,请纠正我),因为我将这些参数直接传递给范围.

PSL*_*PSL 14

我希望能够通过以下方式将'bla'作为不带''的字符串传递:

你只需要文本绑定(@)绑定,而不是2路绑定.

.directive('pTest', function() {
    return {
        scope: {
            something: '@?' //<-- Here
        },
        templateUrl: 'components/testTemplate.html',
        controller: 'testController'
    };
});
Run Code Online (Sandbox Code Playgroud)

如果要绑定范围属性,则使用文本绑定,然后使用插值.例如,如果bla是一个包含字符串的范围变量,那么就这样做:

 <p-test something="{{bla}}"></p-test>
Run Code Online (Sandbox Code Playgroud)

Plnkr