标签: Ember.js
handlebars.jsconditional-statements
我一直在尝试比较Handlebar if语句{{#if value=='otherValue'}}中的一些值,显然没有成功,因为Handlebar不喜欢这样,并且需要字符串、布尔值或函数名。好吧,那没问题,但我试着在函数中传递参数,就像你可以使用{{action}助手一样,但这也没有解决问题,在控制台中得到了这个
错误:断言失败:必须只向if帮助程序传递一个参数
因此,我决定在一个视图中这样做,尽管如此,ember js指南指出,在范围中访问模板值是不寻常的,它们只提供了一个没有示例的糟糕段落。
此刻我真的很沮丧。我将尝试用数据库的一些数据填充表。因此,我有一个控制器和一个视图
App.TableController.extend({
content: [],
contentBinding:'App.incidient.content'
})
App.TableView = Ember.CollectionView.extend({
tagName: 'tbody',
itemViewClass: Ember.View.extend({
templateNam
我的问题很简单:我可以用gruntjs运行npm模块吗?我想逃离格伦特。或者是否有可能从gruntjs运行bash或python脚本?因为我没有看到这个模块的任何grunt插件,所以我不知道如何自动化模板编译(不仅仅是半自动化,通过编写一个带有特定参数的bash脚本来运行它)。我专门为此任务编写了一个grunt插件:
您可以深入了解我所做的工作的内部内容,也可以直接将其合并到您的grunt脚本中。如果您确实想使用bash路线,我在@sindresorhus's中获得了很好的成功
我不一定推荐这个
我有一条这样的路线:
App.PeopleRoute = Ember.Route.extend({
model: function()
{
return App.Persons.find(personId);
}
});
其中personId是异步加载的,是Ember之外的一个普通JavaScript变量。现在,当显示route时,它将获取当前PersonId并显示正确的数据。但是当我更改personId的值时,它不会更新视图
因此,我的问题是,如何刷新此路由以查找具有新p
我想根据模型设置RESTAdapter名称空间。我试图遵循这里提供的示例:,但似乎registerAdapter函数不存在
这就是我的代码的外观:
AS.AnalyticsConfigRoute = Ember.Route.extend({
model: function(param) {
var store = this.get('store');
return store.find('AnalyticsRun',param.runId);
我将这个Ember Rails应用程序从coffeescript转换为javascript。当我单击链接时,AuthController中的登录和注册操作可以完美地工作,但是,当我单击注销按钮时,我得到一个错误,即任何操作都无法处理注销事件,即使在与其他两个链接相同的控制器中有一个操作设置
Uncaught Error: Nothing handled the event 'logout'.
{{view App.MenuItem href="#/login" label="
我有一个余烬应用程序,它有一个“信息中心”的概念如果用户单击消息按钮,则会弹出一个模式对话框,他们可以查看其消息,但与此同时,路由没有改变,因此模式窗口的背景仍然是用户在检查消息之前所处的上下文/路由。有道理吗
为了实现这一点,我想在我的应用程序.hbs中使用{{render}}功能,如下所示:
<p>PAGE HTML, ETC.</p>
{{#if showMessageCenter}}
<div id="messageCenter">
我有一个表单,它创建一个记录,然后转换到特定对象的资源列表。但是,一旦创建了记录,它就不会反映在资源列表中。如果刷新页面,记录将保存在正确的位置。我已经安装了ember chrome扩展,如果我在参考资料下查看,则该资源指向正确的徽章。但如果我先去badge,寻找资源,它就不会被列出。有什么想法吗?我很乐意提供更多必要的信息来澄清。先谢谢你
创建资源表单控制器和路由
控制器
路线
列出资源路径
模型
资源模型
徽章模型
模板
资源清单
{{#链接到“resources.create”clas
我想使用链接模板中已收到的信息。嵌套路由产生了一大堆错误,我对如何传递这些数据有点迷茫,但这似乎是可能的
这是可行的,但我觉得这是个差劲的黑客。理想情况下,我只需要一个API往返
App.Router.map ->
@resource 'photos'
@route 'photo', path: 'photo/:photo_id'
App.PhotosRoute = Ember.Route.extend
model: ->
Ember.$.getJSON('h
升级到Ember 1.2后,我的任何部分都不会被渲染。但是在Ember.TEMPLATES对象中,它们像以前一样可见。有什么想法吗?你的问题可能是因为
现在,在按名称引用分部时,需要使用引号:
{{partial "my_partial"}}
使用不带引号的,如{{partial my_partial}},将从某个控制器或模型的my_partial属性中检索值,当该属性更改时,模板将更新以查找新的部分名称。谢谢!的确,这很有帮助——我有一个旧的Ember.js应用程序,在指南中,部分名称没有引
我有一个商店经理。我的商店可以容纳多个类别。一个产品可以属于多个类别。例如,如果你想在网上销售电脑,你会有两个类别
主板
戴尔
我的产品呢
英特尔酷睿i5-4670K
将属于这两类。我的问题是,我所在的当前模板需要两个控制器:一个是我的ArrayController,它保存我类别的多个ObjectController,另一个是保存选定的当前产品。因为一张图片胜过千言万语,所以我正努力做到这一点:
当用户单击小箭头时,它将添加/删除“我的产品”与所选类别之间的关系。如果需要多个控制器,可以向主控
通过Ember设置时,JayData EntitySet似乎无法捕获属性更改
像这样:
//init at start
controller.set('todo', todoDB.Todos.attachOrGet({ Id:1}));
//later in app
controller.set('todo.Completed', true);
//in the end
todoDB.saveChanges();
我试过这个:
controller.todo.save();
但它不起作
我使用余烬数据作为模型。页面有两个选项卡,第一个选项卡是带有记录列表的网格。当用户单击一行时,它会将用户带到第二个选项卡,并使用选定的网格行id从数据库加载数据。当用户加载第一行时,进行更改但未保存,返回到选项卡1,单击另一行,这会将用户带回到具有新模型的第二个选项卡,如果用户返回到第一个选项卡并单击他第一次选择的行,则会显示更改后的未保存数据。模型已从数据库刷新,但控制器属性值仍保留第一次用户交互时未保存的更改。如何在不循环每个控制器属性以匹配新模型的情况下刷新属性?我的理解是,不会从服务器重
我有一个具有多个关系的余烬模型
App.Game = DS.Model.extend({
drawnNumbers: DS.attr(),
cards: DS.hasMany('card', {async: true}),
winners: DS.hasMany('winner'),
});
drawnNumbers是具有已绘制数字的数组。在玩游戏时,此数组每隔几秒钟更新一次。
我的游戏控制器如下所示:
drawnNumbers: function () {
我有以下设置:
| // IndexController contains array of search result objects
| IndexController (ArrayController)
| //Contains a search result object with row data (array) and search metadata
|---> ResultController (ObjectController)
| // C
我试图创建一个可重用的生成元素,它可以对外部数据的变化做出反应。我在包含的视图中使用computed.alias执行此操作,但这可能是错误的方法,因为我似乎根本无法访问通用控制器对象
还有HTML
<script type="text/x-handlebars">
<h2> Welcome to Ember.js</h2>
{{outlet}}
</script>
<script type="text/x-h
这是我正在学习构建的应用程序
类别有很多产品
类别-标题和产品作为主体的手风琴在类别模板中
路由器.js
MyApp.Router.map(function () {
this.resource('categories', {path: '/'}, function () {
this.resource('category', { path: '/:category_id'}, function () {
this.resource('produc
在某些情况下,我希望防止用户从活动路由转换出去,但同时用户应该能够在当前路由的子路由之间转换。我可以使用willTransition事件来检测转换是否已启动,但如何检测转换是否将退出当前路由或仅在当前路由的子例程之间进行转换
官方的灰烬指南在这种情况下没有帮助。
可能有更好的方法,但您可以通过以下方式检查过渡对象来轻松实现:
Em.Route.extend({
actions: {
willTransition: function(transition) {
var n
我有两个具有多对多关系的模型,但我必须存储属于关系本身的属性。这是连接表的典型用法,因此模型被定义为伪代码:
Module:
name 'string'
type 'string'
modulesProfiles hasMany ModuleProfile
Profile:
name 'string'
type 'string'
modulesProfiles hasMany ModuleProfile
ModuleProfile:
e
我试图在转换到给定路线(在本例中为myApp.UserSettingsRoute)之前,使用需要确认其密码的模式提示用户。一般来说,我都能做到这一点(我在beforeModel钩子中打开模式并中止转换,并在确认密码后恢复转换),但我面临以下问题:
当用户直接输入路由时(通过直接在地址栏中键入URL或在路由中刷新浏览器),我无法打开模式(我收到一个错误),因为我尚未输入任何路由-这是在应用程序中输入的第一条路由。我的问题:我如何才能检测到我正在进入的当前路线是第一条?或者,有更好的方法吗?我已经从
我正在尝试在我的ember cli站点中实现多个登录选项(因此您可以通过facebook、google或我自己的oauth2服务器进行身份验证)。然而,我有点不知所措,不知道怎样才能做到这一点。就我的研究而言,我可以看到有多种方法可以使用
第一个选项是简单地使用,并为每个登录方法创建扩展身份验证器的身份验证器。这是由ember simple auth提供的和示例的组合。显然,这意味着我要自己编写所有的验证器,包括facebook/google的验证器
我看到的第二个选项是用于验证我的每个登录方法
我在创建基本选择输入时遇到问题
app/controllers/scratch.js
import Ember from 'ember';
export default Ember.ObjectController.extend({
list: ['green', 'red', 'blue']
});
import Ember from 'ember';
export default Ember.Route.extend({
});
{{outlet}}
{{view "select
我从主页下载了入门工具包1.8.1版
我将以下内容放在app.js文件中:
App.Router.map(function() {
this.route('about');
this.route('gallery');
this.route('contact');
});
接着:
App.Router.reopen({
location: 'auto'
});
然后,我在index.html文件中构建了所需的模板。当我将位置设置为“散列”时,应用程序工作正常,
标签: Ember.js
internet-explorer-11ember-cli
主页会加载,但当我登录应用程序时会冻结。它在IE10上运行。我用F12运行了一个配置文件,但我似乎无法缩小它花费这么长时间的原因。有人能帮我调试一下吗
我的Rails/Ember应用程序当前使用的是Ember版本1.5.1。我想把它带到Ember的最后一个版本,我一次更新一个版本,这样我就可以得到所有的弃用警告,并在继续之前修复它们。当我尝试从1.6.1版升级到1.7.1版时,我收到以下弃用警告,但我在我的应用程序中找不到我在应用程序实例上使用的任何地方
关于如何调查和发现这种使用then的情况,你有什么建议吗?提供的堆栈跟踪对我没有任何用处
DEPRECATION: Do not use `.then` on an instance of E
在一个Ember CLI项目中,我设法使旧的“bing映射元素”作为一个组件工作,但jshint和单元测试抱怨“Microsoft”未定义”。Microsoft对象是一个全局对象,在Ember组件尝试引用它之后由“veapicore”脚本(虚拟地球API)加载,但在运行时它实际上工作正常
我试图安装'ember cli bing map'插件,认为它可能更好地集成此全局引用,但我遇到了一个'not a Right formatted package'错误,因此不得不将其删除
如何解决这些问题?您
我有这样的模板
<div>
{{#each model as |item|}}
{{#view "selection" model=item}}
<div class="child_div">{{item.name}}</div>
{{/view}}
{{/each}}
</div>
选择视图:
App.SelectionView = Ember.View.extend({
我有一个容器视图,在其中动态插入组件。
当尝试访问该组件模板中的属性时,我发现由于某种原因,模板上下文不是组件,而是容器视图。这意味着模板中的“视图”属性不是指向组件,而是指向组件上方的容器视图。
找不到任何文件表明这是应该发生的,那么有什么想法可以解释为什么会发生这种情况吗?所以,我让它起作用了
我所做的是覆盖组件中的_yield方法:
_yield: function () {
return Ember.View.prototype._yield.apply(this, argume
我的ember应用程序使用1.11.3版本和ember simple auth(0.7.3)。所有的路线都必须设置AuthenticatedRouteMixin,并使用在模型之前获取帐户信息,我认为这不是一个好方法。例如:
App.Route = Ember.Route.extend(AuthenticatedRouteMixin, {
beforeModel: function() {
Account.find().then(function(user) {
this.
如何获取Ember.js中嵌套的模型。我的意思是,我有一个叫做post的模型。在我的端点中,我有一个路径来获取所有帖子,并获取带有id的特定帖子。但是,例如,如果我显示一个特定的帖子,我如何才能获得与该帖子点击按钮相关的所有评论
我在后端的路由是/posts/:post\u id/comments
谢谢你可以试试插件
它允许通过url模板指定所需的url。现在,ember数据url模板正在早期开发中
// console
ember install ember-data-url-template
标签: Ember.js
ember-simple-authember-addon
当我第一次登录时,将一些道具设置为this.get('session'),一切正常。代码如下:
actions: {
// display an error when authentication fails
authenticate: function() {
var _this = this;
var credentials = this.getProperties('identification', 'password');
this.get('session').auth
我正在尝试制作一个表单域验证系统。当组件触发focus out事件时,它会添加一个伪错误
如果您在文本区域键入内容,然后将焦点调出,它将按预期添加“假错误”。但是,如果再次执行此操作,将引发以下错误:
错误:试图在处于root.loaded.created.invalid状态时处理上的事件'becameInvalid'。
我注意到它工作得很好,直到我从1.13.6切换了余烬数据。至1.13.7。因此,如果希望看到JSBIN正常工作,请将ember数据切换到1.13.6
我想知道我是否做错了什么
尝试将Ember项目升级到版本2,但仍使用Grunt作为生成工具,在添加Ember模板编译器任务后出现此错误:
“正在运行”emberTemplates:dist(emberTemplates)任务
错误:ember template compiler.js:869
抛出新错误('no global:self或globalfound');
^
未找到全局:self或global
警告:余烬把手未能编译
/////
grunfile.js
//2015-03-03使用发电机EMBE 0.8.6生成
我有一个问题,我的余烬应用程序,只要登录页面加载一次,我可以登录刚刚好,它带我到正确的页面。然而,当我刷新登录页面,然后登录时,它会将我带到一个奇怪的路由,该路由没有在我的路由器中设置
正确的转换应该是login->authenticated.individual.info
但我要走的路是登录->登录.individual.info
我真的很困惑,到底是什么原因导致路由器将我发送到一条不存在的路由,或者我只是不太熟悉路由器的工作原理
app/router.js
Router.map(functi
我正在使用websocket接收我的EmberJS应用程序中新创建的模型
websocket.onMessage((data) => {
this.store.push(data);
});
这是完美的作品,因为我可以确认使用余烬检查员
令人恼火的是,这并没有更新我现有的模板。我使用以下方式显示项目列表:
model: function(){
return this.store.findAll("posts");
}
在StackOverflow上有很多这样的问题,但似乎没有一
标签: Ember.js
componentslazy-loadingviewport
我创建了一个组件,当它在视口中时,它将加载自身。我面临的问题是,它在视口中之后不会自动更新。这个混合作业是检查组件是否在视图端口中的唯一方法。到目前为止,这只在我每次刷新页面时起作用。我希望组件在用户向下滚动时更新,而不是刷新。如果有人能让我走上正确的道路,我将不胜感激。
混音:
App.InViewportMixin = Ember.Mixin.create({
enteredViewport: function(){
var win = $(window);
我是Ember的新手,我正在创建一个应用程序,其中包含一些模型和关系
这些是我的模型
// models/user.js
export default DS.Model.extend({
name: DS.attr('string'),
role: DS.belongsTo('role')
});
// models/role.js
export default DS.Model.extend({
name: DS.attr('string'),
description: DS
在本地成功创建项目后,我运行
ember build --environment=production
它显示以下消息
Build successful - 1766ms.
我将dist文件夹中的所有文件复制到服务器中的子文件夹中
默认的route index.php可以工作,但没有其他路由可以工作。是吗
是否需要将任何其他文件夹复制到服务器?否,您不需要将dist文件夹以外的任何内容复制到服务器。但是,如果您不从根目录提供余烬应用程序,您需要告诉路由器位置:
在/config/enviro
我创建了一个{{findby}}帮助程序,它对于从数组中选择项非常有用,但是我遇到了一个问题。助手不喜欢在promiseArray数组上调用findBy()
因此,助手被修改为执行以下操作:
export function findby([array, key, value]) {
let isPromiseArray = Ember.typeOf(array.then) === 'function';
if (isPromiseArray) {
array.then((arr)
我是一个极端的初学者。我试图使用海市蜃楼的基础上,在灰烬网站上显示的指南。我所有的代码都和他们的指南差不多。但是,当我转到localhost时,会出现生成错误并出现以下情况:
dateisrael/mirage/config.js (in /Users/aarontaylor/dateisrael/tmp/babel-input_base_path-B9ZXdbHw.tmp/0)
The Broccoli Plugin: [Babel] failed with:
Error: ENOE
我想在上创建一个演示。但是我不能使用一些插件,特别是ember-momentaddon
如何使用ember-momentaddon创建演示?在twidle.json中有一个名为addons的键。你可以在那里添加任何插件
“插件”:{
“余烬时刻”:“4.0.0”
}对于投反对票的人:你能解释一下原因吗?这样我就可以更改或删除我的问题了?这对StackOverflow来说是一个很好的问题。最后我解决了它!问题是当前的ember twiddle正在使用ember2.7。但是有些插件不符合它。更改灰烬
我遇到了一个问题,可选的belongsTo关系没有正确地推送到存储区。在我的余烬应用程序中,我有两个可选模型之间的关系。例如,想象一下:
App.User = DS.Model.extend({
profile: DS.hasMany('profile', {'async': true})
});
App.Profile = DS.Model.extend({
user: DS.belongsTo('user', {'async': true})
});
其中“配置文件”模型中的“用
当使用默认的JsonApiSerializer和Adapter并结合DS.EmbeddedRecordsMixin在请求中包含hasMany关系时,服务器的响应应该是什么样子的
这一点很重要,因为余烬数据在创建记录后使用响应将Id分配给记录,并更改其状态
考虑下面的请求,其中一张发票是与两个发票行一起创建的
{
"data": {
"type": "sales-invoices",
"attributes": {
"name": n
我有下面的JSONAPI示例。我想在余烬数据中加载它
{
"data": {
"id": "in",
"type": "product-offering",
"relationships": {
"products": {
"data": [
{
"type": "group-product",
"id": "group-product-001"
},
下面的代码是我当前的解决方案
tagsValue: Ember.computed('tags.@each', {
get() {
const out = [];
this.get('tags').forEach((tag) => {
out.push(tag.get('value'));
});
return out;
}
}),
有更好的方法吗?试试下面的代码
tagsValue: Ember.
我正在尝试将文本更改为文本框。如果用户单击文本,它将变为一个测试框,因此他们可以编辑内容。我已经做到了。我可以通过下面的代码设置焦点
{{input value=animal.name autofocus=true}}
它只是第一次起作用。如果我调出焦点,文本框将再次变为文本内容。如果我再次单击文本,我可以看到文本框,但它不在焦点中。下面是我正在尝试的代码
组件文件:
import Ember from 'ember';
export default Ember.Component.exte
我正在尝试实现一个导航栏,该导航栏显示登录或注销,具体取决于我已注入应用程序路由(在路由/application.js中定义)的余烬服务中的布尔值
我还阅读了这篇文章,它重申了我对处理状态的服务方法的选择
现在的问题是,当我从一个路由重定向到另一个路由时,子组件没有更新。如果链接显示为登录,当我成功进行身份验证并登录时,链接仍会显示为登录。只有当我刷新页面时,链接文本才会变为注销。注销链接行为相同
应用程序.hbs中的代码:
{{nav-bar isAuthenticated=isAuthe
显然是超级新的余烬。找不到我希望在文档中执行的操作的示例。
无论如何,我有一些代码如下:
{{#if (eq type 1)}}
<span>
{{convert-type measurement showUnits=true myUnits=myUnits}}
</span>
{{else}}
<span>{{convert-type measurement show
在遵循emberjs教程时,我无法让我的组件通过测试
()
教程要求将每个帮助程序放置在
模板文件(app/templates/rentals.hbs),用于发送数组的每个元素。我没有将每个辅助对象放在模板文件中,而是将其放在组件文件中
(app/templates/component/rental listing.hbs),这样我就不必在每次需要放置租赁列表时都写出来了。
测试中的错误是:
在“应显示租赁详细信息”期间拒绝承诺:无法读取null的属性“textContent”
这在测试中起作用
目前我正在做一个编辑功能,它将弹出一个对话框,允许用户编辑他们的详细信息。编辑详细信息后,用户可以选择取消或保存编辑操作。但是现在,当用户单击cancel时,它也会更新,我想这是因为muthelper。我已经在route.js中硬编码了name的值,因此我使用model.name
这是我的template.hbs代码
Name:
{{paper-input
placeholder="Enter name"
value=m
1 2 3 4 5 6 ...
下一页 最后一页 共 296 页