问题标签 [ember.js-view]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ember.js - ember 中的可扩展助手视图
所以,我希望能够为我的应用程序创建一个辅助(主)视图,主要原因是我想实现一个resize
功能。
例子。
然后扩展它
所以,这是我想要实现的一个例子,但不幸的是它会导致一些问题。
如果我转到使用Amazing
视图的路线,那么一切正常,直到您在应用程序中导航,然后返回同一路线,我将面临以下错误。
未捕获的错误:您所做的某些事情导致视图在渲染后但在插入 DOM 之前重新渲染。
我很确定这正在发生,因为我正在扩展这种观点,关于为什么会发生这种情况或我实际上应该做什么的任何想法?
ember.js - 使用预编译的 ember/车把模板的工作流程
因此,我已将 Ember 视图设置为使用外部模板文件 (.handlebars)。一般机制是这样的。我正在使用 requirejs 模块格式:
现在,我已经设置了我的项目,因此我可以使用GruntJS来处理诸如捆绑、uglify、缩小和打包所有 css 和 js 文件之类的事情。
我还想预编译我的模板。所以我设置了grunt-ember-templates,它很好地将我所有的模板打包到一个 js 文件中。生成的 js 文件如下所示:
我不明白,我现在应该使用Ember.TEMPLATES["drawer-menu"]
而不是Ember.Handlebars.compile(drawerMenu)
在需要模板数据的时候使用。
我的问题是我应该如何设置开发工作流程?我是说
我是否应该更改我的代码以始终使用预编译的模板,在这种情况下,我也必须始终在我的开发环境中进行预编译。
如果我不执行上述操作,那么每次为生产构建时,我都必须手动编辑所有视图文件以使用预编译模板。容易出错的东西。
有没有自动设置的机制?
events - Ember:为动作助手指定目标动作视图,而不是包含视图或父视图
在 Ember 中,如果您希望一个操作由视图处理,很容易实现这一点
如果您希望 parentView 处理此问题,则target='view'
替换为target='parentView'
很公平,我的问题是我想要一个 childView 来处理并简单地说明“childView”产量
'无法读取未定义的属性'发送''
我可以选择在这里指定视图的名称,例如:
在哪里
那没有用。也没有
请不要通过说明具有此操作的按钮需要位于 App.targetView 模板中来指导我更改我的应用程序的语义结构,因为这对我来说是一种黑客行为,并且会弄乱我的应用程序的语义结构。
我需要知道的是如何使用目标属性来指定特定视图,而不仅仅是包含视图或父视图:)?
ember.js - 在 ember.js 中创建可重用视图/组件的代码复制
我必须创建一个可以在 ember 应用程序中的多个位置使用的提要阅读器。
在这种情况下,我决定使用“视图”或“组件”。一个问题是在这两种情况下,我都必须将数据保留在“视图”或“组件”之外。我必须触发控制器请求最新数据,控制器更新存储在模型中的数据。这种方法的问题是获取和更新模型代码应该复制到所有使用提要阅读器的地方。有没有办法解决这个问题?
ember.js - 视图中的表单提交事件
我在视图中有一个表单。如何以及在哪里可以处理表单提交事件?另外,我在哪里可以编写代码来处理此表单中存在的元素的事件。我尝试在以下位置处理它:
当我单击按钮上的任意位置时,只会触发单击事件。如何访问提交事件?
ember.js - Ember.Component(块形式):多个出口{{yield}}
我看到 ember 有一个非常好的机制,可以使用此处{{yield}}
记录的机制将内容包装在组件中。
因此,要使用文档中的示例,我可以blog-post
定义一个组件模板,如下所示:
然后我可以blog-post
使用以下表单嵌入到任何其他模板中:
我的问题是,我可以{{yield}}
在组件模板中指定两个不同的插座吗?
像这样的事情可以通过Named Outlets实现,Ember.Route#renderTemplate
如下所示:
车把:
JavaScript:
我不确定我是否可以将这条路径用于不知道哪个路由的模板将呈现它的组件。
编辑1:
为了清楚起见,我尝试将 Android Swipe for Action 模式实现为 Ember 组件。
所以,我希望这个组件的用户能够指定两个不同的模板:
- 普通列表项的模板,以及
- 检测到在 (1) 上滑动时显示的操作的模板。
我想把它变成一个组件,因为很多 javascript 都在处理触摸(开始/移动/结束)事件,同时仍然管理基于平滑触摸的列表滚动。用户将提供这两个模板,该组件将管理触摸事件和必要动画的处理。
我设法让组件以块形式工作,其中块的内容被视为 (1)。第二个模板 (2) 通过一个参数 (actionPartial
下面) 指定,该参数是操作的部分模板的名称:
组件把手模板:sfa-item.handlebars
调用车把模板:
车把mr-item-action
的定义如下:
mr-item-action.handlebars:
问题是,sfaClickedAction
上面用户提供的部分操作不会从组件中冒出来。第 4 段的文档中提到的事实。
所以,现在我不知道用户如何捕获他在提供的操作模板中定义的操作。组件无法捕获这些操作,因为它也不知道它们。
编辑 2
我在这里提出了一个后续问题
ember.js - Ember App Kit '无法在路径中找到视图'
我有一个带有代码的模板templates/articles.hbs:
{{view "carousel"}}
上面的说法一定是正确的,正如入门中所说:https ://github.com/stefanpenner/ember-app-kit/wiki/Getting-Started#resolving-from-template-helpers
在views/carousel.js中的简单代码:
然而,这会导致以下错误:
我尝试将 carousel.js 添加到 views/articles/carousel.js。我尝试了不同的{{view}}
名称,例如 App.CarouselView 等,但这一切都不起作用。
伙计们,我在这里缺少什么?
javascript - Ember.js 根视图不会在刷新时呈现
我有一个带有插座的根模板,然后是一个嵌套的动态资源。当您在根视图的输入中输入名称时,ajax 请求将异步检索嵌套动态资源的模型并使用来自该模型的信息呈现模板。当我从根目录开始并使用输入调用嵌套资源时,一切正常。
所以一切都很完美,嵌套资源更新了 url,但是当我刷新或将 url 粘贴到导航栏中时,我只会得到一个空白页面。没有错误,但根本没有 HTML。我已验证 ajax 请求成功并且我的模型已创建。据我所知,根模板没有被渲染,所以我的嵌套模板无处可去。
我认为 ember 应该使这变得简单和自动化,当我直接进入嵌套路由时,如何使根模板呈现?
这是路由器:
这是AppController
:
这是UserController
:
这是user
模型,它只接受 AJAX 请求返回的 JSON 对象:
css - Ember.js 绑定到组件/视图样式属性
我正在尝试创建一个组件或视图,如果它更适合于此,它绑定到给定模型的计算属性并相应地更改样式属性。我正在使用 Ember App Kit,如果这会影响到应该如何做的话。
该组件将是一个仪表,它有 2 个计算属性要绑定到:“limitDeg”、“currentValueDeg”。每个将使用此组件的模型实例都可以将这些作为模型计算属性提供给组件。
仪表有 3 个重叠的 div -“.meter-div”只是没有绑定的背景,其中一个将使用 CSS3 变换旋转 X 度以显示当前的“limitDeg”。所以调整“变换:旋转(###deg);” 是这里的关键。有一个“indicator-div”,这是一个简单的指标,它基于 CSS3 动画循环的“currentValueDeg”类似地旋转。
下面是我对组件/视图的想法的基本粗略概述:
...我会像这样使用它,例如:{{#each}} ... {{my-component}} ... {{/each}}
1)我希望组件绑定到模型,这样当“limitDeg”计算属性发生变化时,“.limit-div”将使用 CSS3 变换旋转 X 度:rotate(###degrees); .
2)我想用一个无限循环的CSS3动画为“.indicator-div”设置动画,绑定到currentValueDeg computedProperty。
这是我什至应该尝试用一个组件/视图执行此操作,还是在一个部分中执行多个组件/视图?
javascript - 如何在页面在 Ember.js 中呈现之前对其进行修改?
我想根据当时是否被选中,将一个类添加到特定的 HTML 元素中。它是根据当前页面选择的。
出于某种原因,我很难找到如何做到这一点。
是否有我应该寻找的钩子或事件?
这是我的路线:
我将如何抓取params.question_id
然后使用它来将类添加到我的元素中?
这应该在视图的类中完成吗?
谢谢!