【发布时间】:2014-01-15 06:55:54
【问题描述】:
我正在学习 AngularJS,但指令有点问题。我不喜欢他们的样子。具体来说,我不喜欢 javascript 中间有很多 html。看下面的例子:
myApp.directive("myDir", function() {
return {
restrict: "E", // directive is an Element (not Attribute)
scope: { // set up directive's isolated scope
name: "@", // name var passed by value (string, one-way)
amount: "=", // amount var passed by reference (two-way)
save: "&" // save action
},
template: // replacement HTML (can use our scope vars here)
"<div>" +
" {{name}}: <input ng-model='amount' />" +
" <button ng-click='save()'>Save</button>" +
"</div>",
replace: true, // replace original markup with template
transclude: false, // do not copy original HTML content
controller: [ "$scope", function ($scope) { … }],
link: function (scope, element, attrs, controller) {…}
}
});
从 javascript 字符串呈现 html 代码似乎很老套。 :D
我已经看到有 templateUrl 可以使用,但它会加载一整页,如果指令很小,这似乎远非最佳。
我想做的是加载一个包含大量命名模板的html文件。这很容易吗?如果没有,有人有成功的模式吗?
谁能指出我正确的方向?在代码和 html 分离了这么多年之后,我真的不想开始在我的代码中编写 html,我也不想通过扩展框架来开始我作为 AngularJS 开发人员的职业生涯。 ;)
还是我使用的指令有误? (上面的示例代码来自我阅读的一个教程)
【问题讨论】:
标签: javascript html angularjs templates angularjs-directive