在 Angular Meteor 中使用 Blaze 模板

Using Blaze Template in Angular Meteor

我正在尝试使用 useraccounts:bootstrap in an Angular Meteor app by using urigo:angular-blaze-template 包来使用 useraccounts:bootstrap 提供的 blaze 模板 {{> atForm}}

问题: 我在网页上遇到错误:meteorTemplate: There is no template with the name 'todoList'。有什么想法吗?

useraccounts.html

<template name="todoList">
    {{> atForm}}
</template>

<blaze-template name="todoList"></blaze-template>

routes.js

angular.module('myApp').config(function($urlRouterProvider, $stateProvider, $locationProvider) {
    $locationProvider.html5Mode(true)

    $stateProvider
        .state('useraccounts', {
            url: '/useraccounts',
            templateUrl: 'client/useraccounts/views/useraccounts.html',
        })

    $urlRouterProvider.otherwise('/foo')
})

按照 Jos Jarink 的建议,缺少模板错误消失了!但是{{> atForm }}不包含任何内容,只有下面的代码嵌套在uiView里面div

blaze-html-templates 包已被删除,添加回来似乎没有任何区别。

<div class="container">
    <!-- uiView:  -->
    <div ui-view="" class="ng-scope">
        <blaze-template name="atForm" class="ng-scope">
            <div class="at-form ng-scope">
            </div>
        </blaze-template>
    </div>
</div>

更新

Github 回购: https://github.com/nyxynyx/useraccounts-angular

.meteor/packages 中取消注释 blaze-html-templates 给出错误

Errors prevented startup: While determining active plugins: 
error: conflict: two packages included in the app (angular-templates and templating) are both trying to handle *.html 

将您的 Blaze 模板放在另一个文件中,就像您放置 Angular html 的地方一样。也就是说,将 <template> 放在另一个文件中,<blaze-template> 保留在您的 Angular html 文件中。

useraccounts.html

<blaze-template name="todoList"></blaze-template>

useraccounts_blaze.html

<template name="todoList">
    {{> atForm}}
</template>

另请参阅:

更新并检查 atForm 是否存在:

如果您想检查 blaze-template 是否找到了 atForm 或任何其他模板,您可以添加一个简单的模板助手来尝试查找模板名称。 类似于:

Template.todoList.helpers({
    isThatTemplateHere: function (name) {
        var tmpl = Template[name];
        if (tmpl)
            return name + ' was found';
        else
            return name + ' was not found';
    }
});

在您的模板中:

<template name="todoList">
    {{isThatTemplateHere "atForm"}}
    {{> atForm}}
</template>