小编Kim*_*Man的帖子

在ng-repeat中使用orderBy的自定义订单

我有这样的对象:

students = {name: 'Aa_Student', class: 'A_Class'},
           {name: 'Ab_Student', class: 'A_Class'},
           {name: 'Ac_Student', class: 'B_Class'},
           {name: 'Ba_Student', class: 'B_Class'},
           {name: 'Bb_Student', class: 'C_Class'},
           {name: 'Bc_Student', class: 'C_Class'}
Run Code Online (Sandbox Code Playgroud)

假设学生对象被洗牌了.我使用ng-repeat来显示数据.我想按自定义顺序对对象进行排序.

例如,我想显示如下数据:

  Name              Class
-----------------------------
Ac_Student         B_Class
Ba_Student         B_Class
Aa_Student         A_Class
Ab_Student         A_Class
Bb_Student         C_Class
Bc_Student         C_Class
Run Code Online (Sandbox Code Playgroud)

所以基本上,我想按学生的班级排序,但它首先是B_Class,然后是A_Class,然后是C_Class.另外,我想按字母顺序按学生姓名订购.我怎样才能做到这一点?

HTML:

<table>
    <tr ng-repeat="student in students | orderBy:customOrder">
    ...
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

控制器:

$scope.customOrder = function(student) {
    $scope.students = $filter('orderBy')(student, function() {

    });
};
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-orderby

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

在数组中查找值,然后使用Angular forEach返回true

我正在学习JavaScript和AngularJS.

这段代码有什么区别?

function isInArrayNgForeach(field, arr) {
    angular.forEach(arr, function(value, key) {
        if(field == value)
            return true;
    });
    return false;
} // This returns always false

function isInArrayJavaScript(field, arr) {
    for(var i = 0; i < arr.length; i++) {
        if(field == arr[i])
            return true;
    }
    return false;
} // This works fine

function isInArray() {
    var testArr = ['stack', 'over', 'flow'];
    console.log(isInArrayNgForeach('stack', testArr)); // return false
    console.log(isInArrayJavaScript('stack', testArr)); // return true
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:为什么isInArrayNgForeach总是返回false?我假设因为函数内部有一个函数,但我不确定为什么.

javascript foreach angularjs

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

按住Shift键可在不使用angular指令的情况下向对象添加值

在HTML文件中:

...
<ul>
    <li><a href="#" ng-click="addFruit('Apple')">Apple</a></li>
    <li><a href="#" ng-click="addFruit('Banana')">Banana</a></li>
    <li><a href="#" ng-click="addFruit('Coconut')">Coconut</a></li>
</ul>
...
Run Code Online (Sandbox Code Playgroud)

控制器:

...
$scope.addFruit = function(fruitName) {
    $scope.fruitObject.name = fruitName;
};

$scope.fruitObject = {
    name: '',
}
Run Code Online (Sandbox Code Playgroud)

因此,如果单击HTML文件中的链接,它将更改fruitObject.name.我想添加一个函数,如果我点击带有shift键的链接,该值将被添加到fruitObject:

$scope.fruitObject = {
    name: ['Apple', 'Banana']
}
Run Code Online (Sandbox Code Playgroud)
  1. 我可以不使用角度指令吗?
  2. 如果我可以/不能,你能写一个示例代码吗?

JSFiddle:http://jsfiddle.net/6QcEc/

javascript javascript-events angularjs angularjs-directive

5
推荐指数
1
解决办法
3761
查看次数

除了C盘之外,我可以在其他驱动器上安装Chocolatey吗?

我喜欢使用MacPorts,而Chocolatey是完美的替代应用程序.

但是当我使用Windows时,我只在C盘上安装操作系统,所以如果我对Windows系统有任何问题,我只需格式化我的C盘.因此,我的所有文件都存储在D或E驱动器中.

我安装了Chocolatey,但默认驱动器是C.

C:\ProgramData\chocolatey
Run Code Online (Sandbox Code Playgroud)

另外,安装应用程序的默认位置也是C盘.例如,ruby安装在此位置:

// Get Ruby from the repository
choco install ruby

// Then it installed in this location:
C:\tools\ruby213\bin;
Run Code Online (Sandbox Code Playgroud)

我可以将默认位置设置为D盘吗?

chocolatey

4
推荐指数
1
解决办法
2797
查看次数

使用Angular指令禁用文本选择

我正在学习JavaScript和AngularJS.

我想用Angular Directive禁用文本选择.

我有一个该函数的JavaScript代码:

function clearSelection() {
    if(document.selection && document.selection.empty) {
        document.selection.empty();
    }
    else if(window.getSelection) {
        var sel = window.getSelection();
        sel.removeAllRanges();
    }
};
Run Code Online (Sandbox Code Playgroud)

我正在处理该指令,但不知道如何将该函数添加到指令中.

指示:

...
.directive('disableTextSelection', function() {
    return {
        link: function($scope, $element, $attrs) {
            // Something here..
        }
    }
}
...
Run Code Online (Sandbox Code Playgroud)

我想在HTML中这样做:

<table disable-text-selection>
    ...
</table>
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angularjs-directive

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

Spring Framework上的多线程(或异步)计算

我正在学习Spring Framework,它非常棒.

我想使用JAVA多线程,但我不知道如何使用Spring Framework.

这是服务代码:

//StudentService.java
public List<Grade> loadGradesForAllStudents(Date date) {
    try{
        List<Grade> grades = new ArrayList<Grade>();
        List<Student> students = loadCurrentStudents(); // LOAD FROM THE DB

        for(Student student : students) { // I WANT TO USE MULTITHREAD FOR THIS PART

            // LOAD FROM DB (MANY JOINS)
            History studentHistory = loadStudentHistory(student.getStudentId(), date); 

            // CALCULATION PART
            Grade calculatedGrade = calcStudentGrade(studentHistory, date);

            grades.add(calculatedGrade);
        }
        return grades;
    } catch(Exception e) {
        ...
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

没有多线程,它很慢.

我想for循环会导致缓慢,但我不知道如何解决这个问题.如果给我一个有用的链接或示例代码,我会很感激.

我发现loadStudentHistory方法与calcStudentGrade(大约30ms)相比非常慢(大约300ms).

java spring multithreading asynchronous spring-mvc

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