在Angular JS中,如何将指令属性中的数据注入模板?

And*_*lov 6 javascript templates angularjs

这是我的指示:

app.directive("helloWorld", function() {
  return {
    restrict: "E",
    scope: {
      name: "bind"
    },
    template: "<div>a {{name}} a</div>"
  };
});
Run Code Online (Sandbox Code Playgroud)

这是我如何使用它:

<hello-world name="John Smith"></hello-world>
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我希望这个页面是这样的:

<hello-world>
  <div>a John Smith a</div>
</hello-world>
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,name没有注入,实际结果是这样的:

<hello-world>
  <div>a {{name}} a</div>
</hello-world>
Run Code Online (Sandbox Code Playgroud)

我缺少什么?我正在使用Angular JS 1.0.2

Jak*_*ski 14

范围声明很奇怪.我不确定这个"bind"声明 - 可能是以前版本的声明.

绑定到指令属性的当前语法如下所示:

return {
    restrict: "E",
    scope: {
      name: "@name"
    },
    template: "<div>a {{name}} a</div>"
};
Run Code Online (Sandbox Code Playgroud)

一般来说,@attributeName.有关指令的更多信息,请参见此处.