保持角度属性不在我的HTML中

时间:2014-01-23 14:32:50

标签: angularjs angularjs-directive

我在我的网络应用中使用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=绑定的模型似乎不起作用。这是推荐的方式,还是应该做其他事情来处理这个问题?

由于

1 个答案:

答案 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>'
    }
}]);