在 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>
我正在尝试使用 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>