这可能很容易不创建一个范围,并设置模板等于您在那里使用的HTML块。因此,像:(我只是转换了您的HTML到一个js字符串)
app.directive('pages', function(){
var html = " <div class=\"pages\">";
html += " <button ng-disabled=\"currentPage == 0\" ng-click=\"currentPage=currentPage-1\">";
html += " Previous";
html += " <\/button>";
html += " {{currentPage+1}}\/{{numberOfPages()}}";
html += " <button ng-disabled=\"currentPage >= data.length\/pageSize - 1\" ng-click=\"currentPage=currentPage+1\">";
html += " Next";
html += " <\/button>";
html += " <\/div>";
return {
template: html,
scope:false,
restrict: 'E',
replace:true
};
});
您也可以直接从你的HTML与NG-模板,如果你喜欢引用的模板。
fiddle
感谢您的支持,这很好。我想知道这是否是普遍的/好的做法? – Prodikl
@Prodikl yep这是执行它的标准方法。虽然你可能想把你的模板放到它自己的文件中,而不是一个大的JavaScript字符串。您也可以选择将参数传递到指令中,而不是依赖外部控制器的范围。 – rob
感谢您的确认。我怎么能传递参数到像这样的元素指令? – Prodikl