Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用具有角度的灰尘模板_Javascript_Angularjs_Templates_Dust.js - Fatal编程技术网

Javascript 使用具有角度的灰尘模板

Javascript 使用具有角度的灰尘模板,javascript,angularjs,templates,dust.js,Javascript,Angularjs,Templates,Dust.js,我是angularjs环境的新手,我想使用angular using dust模板,因为当前应用程序有dust模板,但我找不到任何关于如何使用angularjs的现有dust模板的信息 问题是dust模板有不同的语法,而angular js模板使用它提供的指令 所以问题是“有没有一种方法可以将我现有的dust模板用于angular js?”?或者我必须根据angularjs规范重写模板。angularjs无法在前端使用DustJS模板。您需要为AngularJS重新编写模板 话虽如此,如果设置为

我是angularjs环境的新手,我想使用angular using dust模板,因为当前应用程序有dust模板,但我找不到任何关于如何使用angularjs的现有dust模板的信息

问题是dust模板有不同的语法,而angular js模板使用它提供的指令


所以问题是“有没有一种方法可以将我现有的dust模板用于angular js?”?或者我必须根据angularjs规范重写模板。

angularjs
无法在前端使用
DustJS
模板。您需要为
AngularJS
重新编写模板

话虽如此,如果设置为AngularJS: 您可以签出,但仍需要重新编写DustJS模板

如果您仍在考虑框架: 退房

ReactJS
允许在客户端和服务器上重复使用模板。此外,它还接管了前端的模板(用于数据绑定和事件管理)。这是SEO友好的,因为它在服务器上呈现第一个页面

如果设置了DustJS模板: 我目前正在使用
Dustjs
进行开发。我面临的最大障碍之一是在前端设置
SPA
。一旦页面第一次出现在前端,所有事件管理、路由和数据绑定都必须由开发人员完成。这给了我在客户端和服务器上使用相同模板的优势,而且由于服务器本身的第一页呈现,因此对SEO也很友好


希望这有帮助。

我同意其他人的看法。我的车把也有类似的问题。但将其迁移到angular很容易。这样做的好处我们很好。AngularJs有许多有用的指令,其次它与控制器相对应

如果你想使用它无论如何。。。指令,控制器有模板属性,你可以在那里插入模板代码。但它必须是角度友好:)与车把为我工作。但过了一会儿,我决定删除它。

有一个部分在大多数情况下都可以工作,无需太多重写。我假设您使用的是灰尘和角度默认值,因此您需要将双花括号替换为单花括号:

angular.module('myApp', []).config(function($interpolateProvider){
    $interpolateProvider.startSymbol('{').endSymbol('}');
});
如果您有简单的用例,例如模板中的以下用例:

Hello Himanshu, the time is now {time}.
如果您通过templateUrl提供该文件(或使用gulp Angular templatecache或其他方式加载),您可以执行以下操作:

angular.module('myApp').directive('myTime', ['$scope', function($scope) {
    $scope.time = new Date();
});
这会使你失望。但是你需要做很多检查、重命名等工作

对于更复杂的用例,您必须进行重命名、搜索和替换等操作。例如,如果您有一个简单的循环,并且希望在其中重复ng,则必须替换:

<table name="users">
    {#users}
        <tr>
             <td>{name}</td>
        </tr>
    {/users}
</table>


您当然可以重用某些组件,但问题是您将得到多少组件以及哪些组件。我不确定你可能引入的其他指令对使用单花括号会有什么反应,它们可能会中断,所以你最好也搜索并替换它们


当然,如果它们没有命名为.html、.dust或类似名称,请将它们全部重命名为.html、.dust或类似名称。

…或者您可以只编译角度模板的花括号,类似于:

{~lb}{~lb} slide.text{~rb}{~rb}


希望有帮助

此问题的最简单解决方案。只需确保在第一个双支架后留下一个空间,灰尘就会被忽略,angular就会把它捡起来

{{variable + func() + 'etc'}} // Dust will process to {}
{{ variable + func() + 'etc'}} // Angular will process

你到底有什么问题?你试过什么吗?你有错误吗?我不知道怎么继续。我有一个使用dust模板和主干js的系统,现在我需要将系统转移到angularjs,但问题是现有的模板是dust模板,我学到的是angular使用html模板及其指令,所以问题是我是否必须重写dust模板或开发解析器,或者有一些可以使用的具有角度的现有功能。如果你能提出建议的话,我个人的观点是,在同一个应用程序中,将多个做相同事情的框架组合在一起是不好的。这将使新手很难理解代码,也很难获得调试方面的帮助。让backbone.js angular.js和dust.js带有一点jquery.js可能不是最好的方法。如果你有时间的话,我建议你把灰尘移到角落里去。或者坚持使用dustHey谢谢你的建议,我最后的办法是转换文件,因为大约有100个或更多的模板,这就是为什么我正在搜索一些可以简化我的工作AngularJS不能在前端使用DustJS模板的东西。您需要为AngularJS重新编写模板。
<ng-include="details.html">
{~lb}{~lb} slide.text{~rb}{~rb}
{{variable + func() + 'etc'}} // Dust will process to {}
{{ variable + func() + 'etc'}} // Angular will process