我见过很多建议使用的问题:
for (var i = 0; i < myArray.length; i++){ /* ... */ }
Run Code Online (Sandbox Code Playgroud)
代替:
for (var i in myArray){ /* ... */ }
Run Code Online (Sandbox Code Playgroud)
对于数组,由于迭代不一致(参见此处).
但是,我似乎无法找到任何似乎更喜欢面向对象循环的东西:
myArray.forEach(function(item, index){ /* ... */ });
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎更直观.
对于我目前的项目,IE8的兼容性很重要,我正在考虑使用Mozilla的polyfill,但是我不能100%确定它是如何工作的.
的角度UI路由器允许多个嵌套视图.这些可互换观点的作用似乎与指令的作用重叠.
使用(多个,嵌套)ui-views vs angular 指令的优缺点是什么?
状态和路由是两种不同的功能.States允许您交换partial.html模板及其控制器,您可以(可选地?)指定相应的URL /路由.
在Tim Kindberg(ui-router开发者)的电子邮件回复中:
ui-view是一个指令,所以如果你使用它,你使用的指令特别适用于ui-router模块的其余部分.我无法想象很容易推出自己的指令来替换这个功能.
对此,似乎你可以有两个选择:
正常指令:
app.directive('myDir1', {/* controller: ... */})
.directive('myDir2', {/* controller: ... */})
Run Code Online (Sandbox Code Playgroud)
vs ui-view"Directives"
$stateProvider.state('route1', {
/* url: "/route1", // optional?? */
views: {
"myDir1": { templateUrl: "myDir1.html" /* , controller: ... */ },
"myDir2": { templateUrl: "myDir2.html" /* , controller: ... */ }
}
})
Run Code Online (Sandbox Code Playgroud)
奖金问题:
视图中是否有正常的角度指示功能?如:
如果ui-views ARE指令,似乎很清楚它们的用法是不同的.协调这些模型是不是有意义?
在多重嵌套视图的功能ui-router是很不错的-你可以很容易地从一个跳跃状态您的应用程序到另一个.
有时您可能想要更改URL,但有时不想.我觉得状态的概念应该与路由分开/可选.
这是一个显示我的意思的plunker. 这是ui-router文档中其中一个掠夺者的分支,下面有两个小的更改:
.state('route1', {
url: "/route", // <---- URL IS SHARED WITH ROUTE2
views: {
"viewA": {
template: "route1.viewA"
},
"viewB": {
template: "route1.viewB"
}
}
})
.state('route2', {
url: "/route", // <---- URL IS SHARED WITH ROUTE1
views: {
"viewA": {
template: "route2.viewA"
},
"viewB": {
template: "route2.viewB"
}
}
})
Run Code Online (Sandbox Code Playgroud)
这似乎有效 - URL保持不变.再次,这里做了多少冗余工作?这是经过批准/测试的用法吗?
如果你可以省略url一个州,那将是很好的..
更新问题:这是经过批准/测试的用法吗?
以下是使用该ng-class指令的两种不同方法.我需要它们,在同一个元素上,但这不起作用.
http://plnkr.co/edit/uZNK7I?p=preview
<div ng-repeat="item in [1, 2, 3, 4, 5]"
ng-class="{ first: $first, last: $last }">{{item}}</div>
Run Code Online (Sandbox Code Playgroud)
正确的结果
<div class="first">1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div class="last">5</div>
Run Code Online (Sandbox Code Playgroud)
http://plnkr.co/edit/tp6lgR?p=preview
<div ng-repeat="item in [1, 2, 3, 4, 5]"
ng-class=" 'count-' + ($index + 1) ">{{item}}</div>
Run Code Online (Sandbox Code Playgroud)
正确的结果
<div class="count-1">1</div>
<div class="count-2">2</div>
<div class="count-3">3</div>
<div class="count-4">4</div>
<div class="count-5">5</div>
Run Code Online (Sandbox Code Playgroud)
我需要动态类名(如'count-' + n),但也需要多个类的对象语法.
我不能只使用2个ng-class属性(http://plnkr.co/edit/OLaYke?p=preview),只有第一个属性有效.
有什么建议?
我刚刚找到了http://gruntjs.com/configuring-tasks#globbing-patterns,这是我发现的最有用的参考资料.
我一直看到:
有关glob模式语法的更多信息,请参阅node-glob和minimatch文档.
然而,我似乎找不到详尽的语法/用法列表. 这些测试可能是最好的参考,但仍然不是特别容易破译.
看来我必须缺少一些重要的文档来源.
我想知道之间的区别:
path
path/
path/*
path/*.*
path/**
path/**/
path/**/*
path/**/*.*
Run Code Online (Sandbox Code Playgroud)
以及我可能省略的任何其他重要变化.我猜这在做node-glob样式匹配('public/**/*.*')和a .gitignore(node_modules)时应用的方式不同,因为在前者中,你需要明确地包含所有东西,很多层深,而在gitignore中,这是通过忽略任何目录自动处理的.它是否正确?
我想使用多个类来选择性地添加转换.而不是堆叠,前一个被覆盖.
.container { transition: margin .2s; }
.container.t-padding { transition: padding .2s; }
Run Code Online (Sandbox Code Playgroud)
问题:属性被覆盖而不是堆叠
http://jsfiddle.net/yz2J8/2/(问题)
我的临时解决方案:将先前的转换添加到规则中
.container { transition: margin .2s; }
.container.t-padding { transition: padding .2s, margin .2s; }
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/ZfQcp/6/(我的临时解决方案)
什么是更好的解决方案?
如何避免创建大量规则来组合这些规则?
您可以在此处查看/克隆完整代码:https://github.com/mlewisTW/grunt-tests
我想观看的src目录(来缩小,CONCAT,少等),这使一切都入build目录.我也想观看的build目录,以livereload.这是手表配置代码段:
watch: {
options: {
livereload: false
},
build: {
files: ['<%= srcDir %>/**/*'],
tasks: 'build'
},
reload: {
files: ['<%= buildDir %>/**/*'],
options: {
livereload: true
}
}
},
Run Code Online (Sandbox Code Playgroud)
我在Windows 8上.Fatal error: watch EPERM当我更改文件时,我得到了一个,它开始了build任务的第一步(干净).我猜这与我正在尝试删除一个监视目录的事实有关.
有没有办法在我构建时关闭livereload watch任务,然后在完成后重新启动它?
还有其他/更好的方法吗?
该jQuery构造它的功能有点映射到另一个构造函数,jQuery.fn.init:
jQuery = function( selector, context ) {
return new jQuery.fn.init( selector, context, rootjQuery );
},
Run Code Online (Sandbox Code Playgroud)
我想知道为什么.
这个问题是非常相似的,但即使是回答者承认他们并没有真正回答这个问题,即为什么
这仅仅是出于组织目的吗?可能作者想要打包它,而不是将init函数放在jQuery构造函数定义中.
是否有任何理由.init()在原型上使用该方法? 我认为没有人会使用过$('.something')...init()...
这个问题表明它没有必要.init在原型上.
我刚刚发现这个问题,其中Dan Herbert的回答表明它只是出于结构/可读性的目的.
总之,我可以确认这个构造函数/原型映射搞笑 - 业务是不必要的吗? 在我看来,jQuery.fn.init功能可以去:
jQuery对象上(jQuery.initvs jQuery.fn.init)jQuery函数/构造函数定义中,替换new jQuery.fn.init并避免jQuery.fn.init.prototype = jQuery.fn映射.我已经遵循了这里的所有建议。
当我按下 时return,我得到一个新的一行,它用制表符而不是空格缩进。
如果我退格以清除选项卡,然后按 TAB 一系列时间,它会正确缩进空格。
我很确定我的所有设置都正确设置。我Code Style > Formatter为项目中的每种语言创建了一个新策略,并指定始终使用空格。似乎这些设置部分处于活动状态(例如:当我按下时tab),但在我使用return. 我尝试重新启动 Eclipse。我现在试试重启电脑...
我正在使用 Eclipse 的 Mac OS X 10.9.2 和 Liferay Developer Studio (1.6.3.v201312111844) 版本(但不确定是基于哪个 Eclipse 构建的)。
谁能想到另一种设置/解决方案来确保用空格而不是制表符创建换行符?我最近看到了http://editorconfig.org/,我想知道是否有一些干扰。
感谢您的任何建议
例如,假设您想要更改许多元素的宽度,以模拟表格.我意识到你可以做到这一点:
$(".class").css('width', '421px');
Run Code Online (Sandbox Code Playgroud)
这会改变每个元素的内联style='width: 421px;'属性.现在,我想要做的是:改变实际的CSS规则定义:
.class {
width: 375px; ==[change to]==> 421px;
}
Run Code Online (Sandbox Code Playgroud)
当涉及到100而不是1000的嵌套<ul>并且<li>需要更改时,似乎这比尝试让jQuery通过该.css()方法完成工作更好.
我找到了这个例子 - 这就是我要做的事情:
var style = $('<style>.class { width: 421px; }</style>')
$('html > head').append(style);
Run Code Online (Sandbox Code Playgroud)
我不是要交换classes($el.removeClass().addClass()),因为我不能为每个最佳宽度(379px,387px,402px ..)提供类.
我可以创建一个<style>元素并动态设置宽度,但我认为有更好的方法.
javascript ×6
angularjs ×3
angular-ui ×2
css ×2
jquery ×2
node.js ×2
arrays ×1
eclipse ×1
for-loop ×1
glob ×1
gruntjs ×1
iterator ×1
liferay ×1
liferay-ide ×1
livereload ×1
ng-class ×1
tabs ×1
whitespace ×1