我想要做的是按属性排序一些数据.这是我应该努力的例子,但事实并非如此.
HTML部分:
<div ng-app='myApp'>
<div ng-controller="controller">
<ul>
<li ng-repeat="(key, value) in testData | orderBy:'value.order'">
{{value.order}}. {{key}} -> {{value.name}}
</li>
</ul>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
JS部分:
var myApp = angular.module('myApp', []);
myApp.controller('controller', ['$scope', function ($scope) {
$scope.testData = {
C: {name:"CData", order: 1},
B: {name:"BData", order: 2},
A: {name:"AData", order: 3},
}
}]);
Run Code Online (Sandbox Code Playgroud)
结果如下:
- A - > AData
- B - > BData
- C - > CData
......恕我直言应该是这样的:
- C - > CData
- B - > BData
- A - > AData
我错过了什么(这里准备JSFiddle进行实验)?
到现在为止,我主要是利用Struts 2,Spring,JQuery用于构建Web应用程序技术堆栈.关键是,提到的堆栈使用服务器端MVC模式.Web浏览器的主要作用仅限于请求/响应周期(+客户端验证).数据检索,业务逻辑,布线和验证主要是服务器端的职责.
我对AngularJS框架的几个问题很少受到我读过的以下引文的启发:
来自AngularJS教程:
对于Angular应用程序,我们鼓励使用模型 - 视图 - 控制器(MVC)设计模式来分离代码并分离关注点.
模型 - 视图 - 控制器(MVC)是一种将信息表示与用户与之交互分离的体系结构.该模型由应用程序数据和业务规则组成,控制器调解输入,将其转换为模型或视图的命令
AngularJS使用客户端MVC模式.所以我想没有其他选择那么以某种方式也将验证逻辑包含在客户端?
编写健壮的AngularJS应用程序的最佳方法是什么?客户端的MVC和服务器端的某种MC(型号,控制器)?
这是否意味着,MODEL和CONTROLLER在某种程度上是重复的(客户端/服务器)?
我知道我的问题有些奇怪,但我认为原因是,我在某种程度上习惯了传统的服务器端MVC模式.我确信有人已经完成了相同的过渡.
javascript model-view-controller server-side client-side angularjs
究竟该方法参数的声明意味着什么:
def myFunc(param: => Int) = param
Run Code Online (Sandbox Code Playgroud)
=>上限定义是什么意思?
AngularJS使用双向客户端数据绑定(来自AngularJS Developers指南):

有没有人考虑使用服务器端模板引擎与AngularJS双向客户端数据绑定的混合.像这样的东西:

我正在考虑将AngularJS仅用于页面的部件(组件)?这是个好主意吗?
我想听听你是否已经有类似方法的经验,有什么缺点和优点......
这是默认输出Karma test runner(一次测试失败):
.
..
...
e 28.0 (Windows): Executed 413 of 421 (1 FAILED)
e 28.0 (Windows): Executed 414 of 421 (1 FAILED)
e 28.0 (Windows): Executed 415 of 421 (1 FAILED)
e 28.0 (Windows): Executed 416 of 421 (1 FAILED)
e 28.0 (Windows): Executed 417 of 421 (1 FAILED)
e 28.0 (Windows): Executed 418 of 421 (1 FAILED)
e 28.0 (Windows): Executed 419 of 421 (1 FAILED)
e 28.0 (Windows): Executed 420 of 421 (1 FAILED) …Run Code Online (Sandbox Code Playgroud) 我为angularjs项目创建了一个自定义过滤器,类似于以下小提琴http://jsfiddle.net/tUyyx/.
myapp.filter('truncate',function(text,length){
var end = "..."
text = text.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
if (isNaN(length))
length = 23;
if (text.length <= length || text.length - end.length <= length) {
return text;
}
else {
return String(text).substring(0, length-end.length) + end;
}
});
Run Code Online (Sandbox Code Playgroud)
但是当我使用过滤器时,我得到以下错误
Error: Unknown provider: textProvider <- text <- truncateFilter
at Error (<anonymous>)
at http://localhost/javascripts/lib/angular.min.js:28:236
at Object.c [as get] (http://localhost/javascripts/lib/angular.min.js:26:13)
at http://localhost/javascripts/lib/angular.min.js:28:317
at c (http://localhost/javascripts/lib/angular.min.js:26:13)
at Object.d [as invoke] (http://localhost/javascripts/lib/angular.min.js:26:147)
at http://localhost/javascripts/lib/angular.min.js:28:335
at Object.c [as get] (http://localhost/javascripts/lib/angular.min.js:26:13)
at …Run Code Online (Sandbox Code Playgroud) 来自Scala编程(第二版),第98页的底部:
对Scala程序员的平衡态度
首选vals,不可变对象和没有副作用的方法.首先到达他们.当您有特定的需求和理由时,请使用变量,可变对象和带副作用的方法.
在前几页解释了为什么更喜欢val,不可变对象和没有副作用的方法,所以这句话很有意义.
但第二句话:"当你有特殊的需要和理由时,使用变量,可变对象和副作用的方法." 没有这么好解释.
所以我的问题是:
什么是使用变量,可变对象和具有副作用的方法的理由或特定需要?
Ps:如果有人可以为每个人提供一些例子(除了解释),那将是很棒的.
我测量了这两个函数的执行时间:
使用Chrome配置文件工具测量了以下方法的执行情况:
// jQuery GREP function
function alternative1(words, wordToTest) {
return $.grep(words, function(word) {
return wordToTest.indexOf(word) != -1;
});
}
// Native javascript FILTER function
function alternative2(words, wordToTest) {
return words.filter(function(word) {
return wordToTest.indexOf(word) != -1;
});
}
Run Code Online (Sandbox Code Playgroud)
数组由words100万个随机生成的字符串构成.每种方法运行20次.令我惊讶的是jQuerygrep功能更快.
执行时间(20次执行):
你可以在这个jsFidle上重复测量- 执行需要一些时间,所以请耐心等待.
有没有解释为什么jQuery grep函数比原生 JavaScript 过滤器功能更快?
PS:这个问题的灵感来自于这个答案.
假设我有这样的类层次结构:
abstract class Expr
case class Var(name: String) extends Expr
case class ExpList(listExp: List[Expr]) extends Expr
Run Code Online (Sandbox Code Playgroud)
定义这样的构造函数会更好吗ExpList:
case class ExpList(listExp: Expr*) extends Expr
Run Code Online (Sandbox Code Playgroud)
我想知道,每种定义在模式匹配方面有哪些缺点/好处?
我想知道使用Eclipse Scala解释器(Eclipse Scala IDE)的最佳实践.
假设我有断点应用程序.是否可以以这种方式调试应用程序,我可以在特定断点处执行/计算REPL中的表达式?如果是,我怎样才能实现它?
另一件令我惊讶的事情是,打开解释器Run configuration或打开解释器之间的区别是什么Window -> Show view -> Scala interpreter.
您是否知道有趣的Eclipse Scala解释器的任何其他用例,例如Ctrl+Shift+X运行所选表达式?
debugging scala eclipse-plugin read-eval-print-loop scala-ide
javascript ×6
angularjs ×4
scala ×4
client-side ×1
data-binding ×1
debugging ×1
declaration ×1
jquery ×1
karma-runner ×1
native ×1
parameters ×1
performance ×1
scala-ide ×1
server-side ×1
unit-testing ×1