Him*_*shu 8 javascript templates angularjs dust.js
我是angularjs环境的新手,我想使用角度使用灰尘模板,因为当前的应用程序有灰尘模板,但我找不到任何关于如何使用我现有的带角度js的灰尘模板.
问题是灰尘模板具有不同的语法,而角度js模板使用它提供的指令.
所以问题是"有没有办法使用我现有的带角度js的灰尘模板"?或者我必须根据angularjs规范重写模板.
有一部分可以在大多数情况下工作,没有太多重写.我假设你正在使用Dust和Angular默认值,所以你需要用单个替换双花括号:
angular.module('myApp', []).config(function($interpolateProvider){
$interpolateProvider.startSymbol('{').endSymbol('}');
});
Run Code Online (Sandbox Code Playgroud)
如果你有一个简单的用例,就像在模板中这样:
Hello Himanshu, the time is now {time}.
Run Code Online (Sandbox Code Playgroud)
如果您通过templateUrl为Angular提供该文件(或使用gulp-angular-templatecache或其他任何方式加载它),您可以:
angular.module('myApp').directive('myTime', ['$scope', function($scope) {
$scope.time = new Date();
});
Run Code Online (Sandbox Code Playgroud)
这将呈现.但是你需要进行大量的检查,重命名等.
对于更复杂的用例,你必须进行一些重命名,搜索和替换等.例如,如果你有一个简单的循环,并希望在那里进行ng-repeat,你必须替换:
<table name="users">
{#users}
<tr>
<td>{name}</td>
</tr>
{/users}
</table>
Run Code Online (Sandbox Code Playgroud)
有了这个:
<table name="users">
<tr ng-repeat="user in users">
<td>{user.name}</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
或者,如果您有包含,请更改:
{>details}
Run Code Online (Sandbox Code Playgroud)
至
<ng-include="details.html">
Run Code Online (Sandbox Code Playgroud)
你绝对可以重用一些组件,但问题是你得到了多少和什么.而且我不确定你可能带来的其他指令如何对单卷括号使用做出反应,它们可能会破坏所以你可能会更好的只是搜索和替换它们.
当然,将它们全部重命名为.html,.dust或类似,如果它们没有被命名.
| 归档时间: |
|
| 查看次数: |
2377 次 |
| 最近记录: |