小编Pri*_*osK的帖子

AngularJS按属性排序

我想要做的是按属性排序一些数据.这是我应该努力的例子,但事实并非如此.

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)

结果如下:

  1. A - > AData
  2. B - > BData
  3. C - > CData

......恕我直言应该是这样的:

  1. C - > CData
  2. B - > BData
  3. A - > AData

我错过了什么(这里准备JSFiddle进行实验)?

javascript angularjs

92
推荐指数
4
解决办法
16万
查看次数

AngularJS客户端MVC模式?

到现在为止,我主要是利用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

72
推荐指数
3
解决办法
4万
查看次数

函数参数类型和=>

究竟该方法参数的声明意味着什么:

def myFunc(param: => Int) = param
Run Code Online (Sandbox Code Playgroud)

=>上限定义是什么意思?

parameters scala declaration

37
推荐指数
3
解决办法
2万
查看次数

AngularJS客户端数据绑定和服务器端模板

AngularJS使用双向客户端数据绑定(来自AngularJS Developers指南): 双向数据绑定

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

我正在考虑将AngularJS仅用于页面的部件(组件)?这是个好主意吗?

我想听听你是否已经有类似方法的经验,有什么缺点和优点......

javascript data-binding template-engine angularjs

27
推荐指数
1
解决办法
1万
查看次数

Karma转轮控制台 - 仅输出失败的测试

这是默认输出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)

javascript unit-testing karma-runner

23
推荐指数
3
解决办法
1万
查看次数

Angularjs过滤错误:"错误:未知提供者:textProvider"

我为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)

javascript angularjs

16
推荐指数
1
解决办法
2万
查看次数

当命令式的风格更合适?

来自Scala编程(第二版),第98页的底部:

对Scala程序员的平衡态度

首选vals,不可变对象和没有副作用的方法.首先到达他们.当您有特定的需求和理由时,请使用变量,可变对象和带副作用的方法.

在前几页解释了为什么更喜欢val,不可变对象和没有副作用的方法,所以这句话很有意义.

但第二句话:"当你有特殊的需要和理由时,使用变量,可变对象和副作用的方法." 没有这么好解释.

所以我的问题是:

什么是使用变量,可变对象和具有副作用的方法的理由或特定需要?


Ps:如果有人可以为每个人提供一些例子(除了解释),那将是很棒的.

functional-programming scala imperative-programming

15
推荐指数
3
解决办法
1299
查看次数

JQuery grep(...)VS本机JavaScript过滤器(...)函数性能

我测量了这两个函数的执行时间:

使用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次执行):

  • jQuery grep函数26,31s
  • 原生JavaScript 过滤功能34,66s

你可以在这个jsFidle上重复测量- 执行需要一些时间,所以请耐心等待.

有没有解释为什么jQuery grep函数比原生 JavaScript 过滤器功能更快?

PS:这个问题的灵感来自于这个答案.

javascript performance jquery native execution-time

14
推荐指数
1
解决办法
1万
查看次数

案例类,模式匹配和varargs

假设我有这样的类层次结构:

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)

我想知道,每种定义在模式匹配方面有哪些缺点/好处?

scala pattern-matching

10
推荐指数
2
解决办法
4725
查看次数

Eclipse Scala解释器(REPL) - 正确使用和调试

我想知道使用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

8
推荐指数
1
解决办法
7935
查看次数