我有一个控制器和一个组件.在呈现组件时,它以这种方式传递:
{{modal-filter feature=feature parentController=this.controller}}
Run Code Online (Sandbox Code Playgroud)
其中feature是通过控制器传递给handlebars的param,而parentController是控制器.
现在,在控制器本身中,有一个属性(数组).让我们调用该数组requiredValues.
现在在控制器/组件本身内,我们可以轻松设置:
valueObserver : function(){
...
}.observes('requiredValues')
Run Code Online (Sandbox Code Playgroud)
但是,我需要从模态过滤器组件中观察此控制器属性.所以在模态过滤器组件中,我将作为观察者函数放置什么:
valueObserver : function(){
...
}.observes(???)
Run Code Online (Sandbox Code Playgroud) 我尝试使用 Kusto 在 Azure 应用程序见解中简单地运行子查询,以便我可以从显示为一个的两个表中获取一些信息。
我正在尝试的查询是
table1
| extend progressLog = toscalar(
table2
| where common_Id == table1.common_Id // errors saying Ensure that expression: table1.common_Id is indeed a simple name
| summarize makelist(stringColumn)
)
Run Code Online (Sandbox Code Playgroud)
我尝试给这个 id 起别名,甚至连接两个表,如下所示:
requests
| extend aliased_id = common_Id
| join traces on operation_Id, $left.operation_Id == $right.operation_Id
| extend test_id = operation_Id
| extend progressLog = toscalar(
traces
| where operation_Id == aliased_id // Failed to resolve column or scalar expression named 'aliased_id'
| summarize makelist(message) …Run Code Online (Sandbox Code Playgroud) 这可能是一个愚蠢的问题,源于不熟悉.我正在使用Ember-cli v2.2重写以前在Ember 2.3中使用Ember 1.7的项目
现在,在旧项目中,有一些库被手动包含在index.html文件中,放在scripts目录中然后编译.例如,假设我要包含的JS资产是offline.js.
据我所知,Ember-cli使用Bower,可用于安装bower组件,如Bootstrap或moment.js等.那个自定义JS怎么样?我把文件放在offline.js中,包含在index.html中,但是没有做任何事情.
我认为我根本不了解如何添加/导入供应商资产; 如何添加,比如说offline.js到项目并让它在整个应用程序中可用?
我在循环中有一个select元素,我想要触发的动作需要有两个参数:select元素的选定选项和我们循环的项目.我的代码看起来像这样:
{{#each loopItems as |loopItem|}}
<select onChange={{action 'fireThis' loopItem target.value }}>
{{#each loopItem.subItems as |subItem|}}
<option value={{subItem.id}}>{{subItem.value}}</option>
{{/each}}
</select>
{{/each}}
Run Code Online (Sandbox Code Playgroud)
而我的火焰这个动作是这样的:
fireThis:function(loopItem, value){
//Do something here with both.
// like loopItem.set('thisProperty', value);
}
Run Code Online (Sandbox Code Playgroud)
因此,在我的特定情况下,subItems的数量是动态的,我需要将选定的subItem与其当前使用的loopItem一起使用.
除非重构为组件(现在,我不能这样做),如何将多个参数传递给在'onChange'上触发的操作?
我试过了:
<select onChange={{action 'fireThis' value ="loopItem target.value" }}>
<select onChange={{action 'fireThis' value ="loopItem target.value" }}>
<select onChange={{action 'fireThis' loopItem value="target.value"}}>
<select onChange={{action 'fireThis' value="target.value" loopItem}}>
Run Code Online (Sandbox Code Playgroud)
对于上述所有情况,函数中的两个参数都是未定义的(或导致另一个错误).唯一有效的是:
<select onChange={{action 'fireThis' value="target.value"}}>
Run Code Online (Sandbox Code Playgroud)
但这只给了我subItem,而不是loopItem.
不幸的是,loopItems是新创建的Ember对象,没有任何ID参数,所以我不能给每个select元素一个唯一的ID.传递多个参数的能力几乎可以解决我的整个问题.
我正在 Ember.js 平台上开发带有用于上传文件的 Microsoft Azure 数据库。由于这些文件的内容是敏感的,我们依靠 Azure 的安全访问 api 允许我们的用户查看文件大约 2 分钟,然后使访问链接过期。此安全访问链接作为 返回到我的应用程序response.fileURL。
问题是我需要在新选项卡中打开此链接,到目前为止,我尝试过的方法适用于除 Safari 之外的所有浏览器。
现在,在搜索“以编程方式在 safari 上打开新标签”一段时间后,到目前为止我在网上找到的每个结果(例如,http://whoknew.dk/programmatically-opening-a-new-tab-window- on-mobile-safari-55.htm)有一个对以下代码有一些解释的实现:
function openURL(){
var a = window.document.createElement("a");
a.target = '_blank';
a.href = response.fileURL;
// Dispatch fake click
var e = window.document.createEvent("MouseEvents");
// e.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
e.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null);
a.dispatchEvent(e);
}
openURL();
Run Code Online (Sandbox Code Playgroud)
由于一个简单的
<a …Run Code Online (Sandbox Code Playgroud) 我从我的数据库中提取了许多对象作为searchResult对象(我已经定义和设置的模型).
现在我需要将这些对象放在JS数组中 - 如果它们尚未存在于它们中.JS数组有一个"if --- in array",但它没有真正比较自定义对象.最简单的解决方案是使用双循环并使用数组中每个已存在的对象检查每个传入对象,但我的searchResult对象具有几个我无法花时间比较的属性.
那么有没有办法检查,例如,Ember本身是否(searchResult1 == searchResult2)?
我知道有一种类似的混合,但我不确定这是否有帮助 - 甚至如何使用它.
我正在使用此界面在我的应用上上传文件:
https://github.com/Wildhoney/EmberDroplet
我的应用程序在Node.js上运行,而Ember是我正在使用的客户端框架.我还需要使用Azure存储服务来存储文件/图像上传.
但是,由于我对这个概念和工具方面很新(Node和Ember,因此是EmberDroplet),我不明白如何通过Ember Droplet上传文件,然后将其发送到我的节点服务器以便上传它到Azure.
我已经安装了Azure-Storage软件包并在Node.js上直接测试了它的上传.这有效.
我已将Ember-Droplet mixin与我的界面集成,它确实将文件拖入其中或通过文件输入选择.
我不知道如何连接这两个:EmberDroplet有一个名为uploadallfiles的函数,它似乎将提供的文件数组作为输入并从中创建一个XHR对象,并在它返回其jQuery promise之前,它发送XHR请求.
我的问题是:如何设置我的应用程序,以便在执行uploadallfiles时,我的node.js服务器可以访问它们,以便它可以将它们上传到azure,然后在文件关联的模型中存储对它的引用用?
后续问题是这样的:Azure关于将Azure与节点一起使用的教程展示了如何通过它的文件路径获取本地存储的文件,然后将其上传到Blob存储.然而,
Here is my /etc/hosts file
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
127.0.0.1 test.localhost
127.0.0.1 demo.localhost
127.0.0.1 test2.localhost
255.255.255.255 broadcasthost
::1 localhost
Run Code Online (Sandbox Code Playgroud)
我需要的是能够从url中解析子域,因为我必须将它存储在会话cookie中供会话使用(现在).我不想做任何花哨的事 - 比如现在设置api或任何东西.
Express的文档显示有一个req.subdomains属性将子域列为数组,但是对于所有本地子域,此数组显示为空.[即当我去demo.localhost:3000时,Web应用程序肯定会提供,但在第一个get函数中,我调用req.subdomains并且有一个空数组[].
如何从我的localhost:3000获取这些子域字符串?
我正在尝试使用node.js检索刚刚上传到Azure存储的文件的URL。我上传的代码是这样的:
[注意:我使用的是Ember-droplet,因此“区域”是文件的拖放位置。这是服务器端代码,用于处理发送POST请求以上传文件的路由。]
// Responsible for the call to OPTIONS.
app.options('/upload', function(request, response) {
response.send(200);
});
/* Responsible for file upload. */
app.post('/fileUpload', function(request, response) {
/* Get the files dropped into zone. */
var files = request.files.file,
promises = [];
/**
* @method uploadFile
* @param file {Object}
* @return {Object}
* Function takes a general param file, creates a blob from it and returns the promise to upload it.
* Promise: jQuery promise = all done later.
*/
var …Run Code Online (Sandbox Code Playgroud) 假设我有一个hasMany关系Procedure => hasMany Steps,async:true,我有一个名为procedure-main的Procedure Component(在程序路径上),它列出了这些步骤:
{{#each steps as |step| }}
{{step.title}}
{{/each}}
Run Code Online (Sandbox Code Playgroud)
我需要在任何步骤上更改stepStatus时观察每个步骤(例如,stepStatus)的属性.在Ember 1.7中,我在程序控制器上有这样的东西:
stepsStatusObserver: function(){
...
}.observes('steps.@each.stepStatus')
Run Code Online (Sandbox Code Playgroud)
这是在步骤中的任何步骤上更改stepStatus时触发的,并且只要状态发生更改,我在此函数中的任何内容都会被触发.但是,在Ember 2.3中,我无法实现这一点.我试过了
stepsStatusObserver: Ember.observer('steps.[].stepStatus', function(){
...
})
Run Code Online (Sandbox Code Playgroud)
但这只会在页面上列出步骤时触发一次.当我将一个步骤的状态更改为新值时,该函数永远不会被触发.
如何在Ember 2.3中复制此功能?
注意:在我的用例中,我不能依赖于在单击按钮时手动设置观察者内部的功能,因为如果在任何步骤中更改了stepStatus属性,它必须自动触发.
ember.js ×7
azure ×3
node.js ×3
ember.js-2 ×2
javascript ×2
ember-cli ×1
ember-data ×1
express ×1
jquery ×1
safari ×1