我在我的网络应用中使用AngularJS,这不是单页应用,而是更传统的许多html网页应用。
当我将asp-powers添加到我的asp.net mvc Razor视图cshtml文件(实际上是html文件)时,我不喜欢我正在添加更多视图标记,然后在HTML中输出。例如,下拉列表如下所示:
<select ng-model="pagerInfo.filterText" ng-options="g.ID as g.GroupName + ' (' + g.InboxCount + ')' for g in groups"
我不希望在标记中看到所有角度噪声。那我该怎么办?
我尝试使用directives
进行重构 - 所以上面的代码段可以替换为
<select group-filter/>
..但这似乎存在问题,例如,当在指令模板中定义时,与ng-model=
绑定的模型似乎不起作用。这是推荐的方式,还是应该做其他事情来处理这个问题?
由于
答案 0 :(得分:0)
您可以使用replace和transclude创建一个简单的模板指令,如下所示:
<template-directive></template-directive>
app.directive('templateDirective', [function () {
return {
replace: true,
transclude: true,
restrict: 'E',
template: '<select ng-model="selectedItems" multiple ng-options="g.Id as g.Label for g in items" ></select>'
}
}]);