我们的团队对Angular 2的alpha版本感到非常兴奋,我们只是急切地等待它的稳定发布并开始使用它.但是在Misko的Angular 2的ng-conf 2015期间,我们遇到了令我困惑的以下事情
打字稿!是否真的需要使用typescript来获得更好的性能,而不是编写我们一直在做的简单的JS代码.我们发现了一些评论说明打字稿有助于提高性能.
ES6功能.由于角度2将使用很多es6功能,这意味着我们必须等待所有浏览器至少支持角度2所需的那些功能才能在我们的生产应用程序上启动它.
Web组件.由于角度2提供了创建Web组件的工具,而且我发现了一些关于创建自己的(使用聚合物)的博客,我们的团队创建它们有多难?或者,如果我们坚持旧的指令创造的事情,它会更好吗?
性能.我已经看过Angular + React的这个视频,它提供了角度与角度+反应与角度2的良好比较.但是我不确定角度2是否真的很快或者如果我们可以继续建立角度+反应应用程序,以避免等待角度2稳定或浏览器支持角度使用的es6功能.
我不确定我是否已经很好地构建了我的问题,但在我开始学习角度2之前,上面是我的担忧,因为他们演示角度2 +打字稿似乎会为我和我的团队带来很多收益曲线.
如果有人能澄清我上面列出的问题,我将非常感激.
谢谢.
我有一个Person对象数组
var persons = [
{Name:'John',Eligible:true},
{Name:'Mark',Eligible:true},
{Name:'Sam',Eligible:false},
{Name:'Edward',Eligible:false},
{Name:'Michael',Eligible:true}
];
Run Code Online (Sandbox Code Playgroud)
我正在使用选择这样的ng-options:
<select ng-model="Blah" ng-options="person.Name for person in persons"></select>
Run Code Online (Sandbox Code Playgroud)
我想显示与记录符合条件的:假的红颜色.所以问题是如何使用ng-classin select来实现这一目标?因为我们没有使用任何option标签,如果我只需添加它不会工作ng-class在select元素本身.
orderBy在我的输入框列表中应用后,如果我编辑任何字段,它立即开始排序,我松散焦点.我尝试挖掘角度代码并发现他们在orderBy的属性上应用了类似于$ watch的东西,因此每当值更改时,它会对列表进行排序.是否有任何方法可以在编辑时禁用orderBy?我不想让orderBy在编辑文本时对数据进行排序.任何帮助将不胜感激
注意:我想使用orderBy并且不需要任何替代方法,例如从任何控制器本身对列表进行排序.我只是希望orderBy在页面加载时对列表进行一次排序,然后保持相当.
我一直在研究hapi.js应用程序并具有以下架构:
Database
--Models
--usermodel.js
--anothermodel.js
Routes
--private
--controllers
--ctrl1.js
--ctrl2.js
--validators
--validatr1.js
--validtr2.js
--public
--controllers
--ctrl1.js
--ctrl2.js
test
--dbtest.js
--functiontest.js
server.js
Run Code Online (Sandbox Code Playgroud)
我们在使用时采用了这种结构express,但我从一个新的应用程序开始,并想知道是否有资源可以找到更好的应用程序结构?我已经查看了关于hapi和其他资源的官方网站,但找不到任何有趣的内容.
任何帮助赞赏.谢谢.
我最近遇到了这个很棒的MutationObserver功能,它可以跟踪任何dom元素的变化.我使用了mozilla开发人员网络上显示的代码,但似乎无法使其运行.这是我使用的代码(链接):
// create an observer instance
var target = document.querySelector('#something');
console.log(target);
var observer = new WebKitMutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
console.log("Success");
//$('#log').text('input text changed: "' + target.text() + '"');
//console.log(mutation, mutation.type);
});
});
observer.observe(target, { attributes: true, childList: true, characterData: true });
//observer.disconnect(); - to stop observing
// test case
setInterval(function(){
document.querySelector('#something').innerHTML = Math.random();
},1000);
Run Code Online (Sandbox Code Playgroud)
上面的代码似乎不起作用.但是,如果我用一些jQuery修改相同的代码,一切似乎都很好(这里是演示).有没有我在文档中遗漏的东西,或者我只是误解了观察者的特征.
我已经和KoaJS合作了一段时间,我们可以在使用--harmony标志时轻松使用'let'关键字和生成器,但我找不到节点v0.11.x提供了多少支持同时使用相同的.
我尝试使用默认值参数初始化但无法成功.
是否有任何可用的源可以使用和声标志列出节点v0.11.x中支持的ECS 6的功能?或者,如果有任何npm模块可用于节点,可能允许我使用相同的?
提前致谢.
我正在使用hapi v6.11.1并且一直试图有条件地将来自我的hapi.js服务器的请求重定向到另一台服务器.这是我到目前为止所做的:
server.on('onRequest',function(request,reply) {
if(request.headers.customHeader) { // redirect only if header found
reply('custom header redirection').redirect('http://someurl.com');
return;
}
reply();
});
Run Code Online (Sandbox Code Playgroud)
但上面的解决方案将无法工作,仍然命中我的服务器而不是我指定的服务器.
我尝试在'onRequest'处理程序上执行reply.proxy()并得到以下错误:
错误:未捕获错误:如果解析了有效负载或输出不是流或数据,则无法进行代理
在尝试找出解决方案时,我从hapi.js文档中发现了以下内容:
仅在处理程序方法中可用,并且仅在reply(),reply.file(),reply.view(),reply.close(),reply.proxy()或reply.redirect()之一之前调用.
但问题是我有大约100条路线,我现在必须更改每个请求的处理程序以允许代理,如果我的条件得到满足,我不想这样做.
如果有以下任何一种可能,我会很高兴的:
将请求从'onResponse'重定向到另一个域,而不是更改处理函数.
服务器方法,可以允许我配置所有路由配置并在其上注入代理重定向.
谢谢.
所以我们现在已经使用节点很长一段时间了,我必须说,随着节点社区的不断发展,人们正在开发大量令人敬畏的模块和框架.但是,随着我们正在开展越来越多的项目,我有时会对哪个框架感到困惑.到目前为止,我们使用了以下框架:
Express - 我最喜欢的节点框架之一,当我们开始在node.js中创建应用程序时,这也是第一个.(我认为这也是第一个获得如此受欢迎的应用程序).我们确实遇到了诸如回调地狱之类的问题但是如果路由和代码组织更清晰,我们很高兴使用它.
KoaJS - 来自TJ和团队的另一个,这真是太棒了!当任何浏览器几乎不支持它们时使用ECS 6.(特别是它可以帮助你完全删除回调地狱).我们遇到了一些https符合Koa的问题,并且不得不使用hapi重写整个服务器,以及它依赖于节点上的不稳定版本.
Hapi - 这是我们最近的采用,并没有做太多,但最有趣的部分是joi模块,它帮助我们(轻松)验证请求甚至在它们到达实际服务器和自动文档生成之前.
合成 - 我没有与它进行过多的互动,但在阅读文档时,我遇到了
像AngularJS一样使用服务和依赖注入,但是在后端!
这真棒,但由于它还处于测试阶段,我不打算很快就会使用它.
因此,在尝试为您的应用程序寻找框架时,是否有一个特定的功能集,一个框架擅长而其他框架不擅长?因为老实说,我们采用大多数框架只是为了尝试它们,除了语法差异(使用ECS 6的Koa除外)以及它们如何处理路由,我发现它们之间没有太大差异.
所以我的问题是,我们应该通过观察它的受欢迎程度(这是人们通常做的)来采用任何框架,或者在做同样的事情时我们需要考虑一些检查点吗?
任何建议/帮助表示赞赏.
编辑
我想补充一点,我对这个问题的意图是找出在选择任何node.js框架时要考虑的关键点(而不是仅仅取决于它的受欢迎程度或有多少大牌使用它).对于前端,我们可以很容易地告诉我们,因为我们已经知道或者已经被告知可以帮助开发更容易的关键功能(角度和骨干之间的差异可以是一个例子)但是对于node.js框架来说,这不是任何方式.
我也会请其他人考虑我的编辑.
我使用了快递,在那里你可以传递多个方法来传递一个如下的路线:
app.get('/users/,[
validator.validate,
controller.get
]);
Run Code Online (Sandbox Code Playgroud)
然后,每个函数都使用next()回调将控制权传递给数组中的下一个函数.有没有相同的东西可以在hapijs处理程序中完成?我希望我的函数既可以重用也可以像我们对快速路由处理程序一样独立.
谢谢.
我见过很多这方面的例子,但没有帮助.我有以下字符串:
var str = 'asfasdfasda'
Run Code Online (Sandbox Code Playgroud)
我想提取以下内容
asfa asfasdfa asdfa asdfasda asda
Run Code Online (Sandbox Code Playgroud)
即所有以'a'开头并以'a'结尾的子字符串
这是我的正则表达式
/a+[a-z]*a+/g
Run Code Online (Sandbox Code Playgroud)
但这总是只给我一个匹配:
[ 'asdfasdfsdfa' ]
Run Code Online (Sandbox Code Playgroud)
有人可以在我的实施中指出错误.
谢谢.
编辑已更正所需的子串数.请注意,还需要重叠和重复的子字符串.
我有以下代码:
function lastElement(array) {
if (array.length > 0)
return array[array.length - 1];
else
return undefined;
}
alert(lastElement([ undefined,1, 2]));
Run Code Online (Sandbox Code Playgroud)
返回2,因为它不计算未定义的元素,并且完全正常.现在如果我用undefined交换数组中的最后一个元素:
function lastElement(array) {
if (array.length > 0)
return array[array.length - 1];
else
return undefined;
}
alert(lastElement([ 1, 2,undefined]));
Run Code Online (Sandbox Code Playgroud)
它返回undefined !! 为什么会这样?任何帮助赞赏.
我遇到了以下情况:
var object = {};
object.name = 'ABC';
console.log(object. name); // this is still valid
Run Code Online (Sandbox Code Playgroud)
注意后面的空格 object.
为什么这个有效?这有ECMA规范吗?
对于不同数据类型的所有继承属性也是如此.
我在节点终端上测试了这个.
谢谢!