小编Vur*_*ral的帖子

为什么angularJs更新数组/ hashmap的所有元素,如果只更改了一个?

我有一个简单的hashmap和一个简单的方法,它在文本中显示状态,但是当我只更新1个用户状态时,所有这些都会更新(为所有用户调用函数).有没有办法只更新一个元素而不是全部元素?

示例代码在这里,只需查看单击"更改状态"按钮时控制台中发生的情况.

HTML:

<div ng-app="myApp">
  <div ng-controller="Ctrl">
    <div class="user-panel" ng-repeat = "(id, user) in _users">
        Status: 
        <span class="user-status{{user.status}}">
            {{getStatusInText(user.status)}}
        </span>
        <hr>
        <div class="toLeft">(<b>{{id}}</b>) {{user.name}}</div>
        <div class="toRight">
            <button ng-click="changeUserStatus(id, '1')">Change Status</button>
        </div>
       <div class="clear"></div>
    </div>
  </div>    
</div>
Run Code Online (Sandbox Code Playgroud)

AngularJS:

var app = angular.module('myApp', []);

function Ctrl($scope) {
    $scope._users = {"123":{"name":"test","status":"0"}, "124":{"name":"test2", "status":"0"},"125":{"name":"test2", "status":"0"}};

    $scope.getStatusInText = function(status) {
        console.log("CALLED: " + status);
        return (status === "1") ? "online" : "offline";
    }

    $scope.changeUserStatus = function(uId, status) {
        $scope._users[uId].status = status;

    }
}
Run Code Online (Sandbox Code Playgroud)

以上例子的小提琴:

http://jsfiddle.net/ztVnj/3 …

javascript frameworks angularjs

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

setInterval和clearInterval,如何只运行一次?

我只想1次运行该功能.

timerA = setInterval(function()
         {
            //codes..
            clearInterval(timerA);
         }, 2000);
Run Code Online (Sandbox Code Playgroud)

我想只调用一次setInterval中的函数.我怎么能用setInterval和clearInterval呢?

还是有其他技术可以做到吗?

javascript jquery function

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

为什么数组甚至使用字符串键保留这么多空格?

我有以下数组:

var arr = [];
console.log(arr.length); //Output: 0

arr["1231321"] = "abcd";
console.log(arr.length); //Output: 1231322

arr["1231321".toString()] = "abcd";
console.log(arr.length); //Output: 1231322

arr["a1231321"] = "abcd";
console.log(arr.length); //Output: 0

arr["1231321a"] = "abcd";
console.log(arr.length); //Output: 0
Run Code Online (Sandbox Code Playgroud)

这是小提琴:http://jsfiddle.net/HcrcR/

当我改变我的arr var arr = {};然后它工作.

但是它的原因是什么,即使我使用字符串键它开始从键推送数据?

javascript arrays hashmap

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

PHP 7卷曲未加载

我已经在我的本地计算机apache 2.4中安装了PHP 7.1.我在我的php.ini(extension = php_curl.dll)中启用了curl,但由于某种原因,即使我启用了curl也没有加载,我做了一个phhinfo来检查,什么都没有,我也做了一个小脚本:

function isExtensionLoaded($extension_name){
    return extension_loaded($extension_name);
}

echo isExtensionLoaded('curl');
Run Code Online (Sandbox Code Playgroud)

没有什么,是空白的,它意味着什么是没有被装载,是缺少什么?我在Windows 10上.

php windows apache curl php-7.1

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

如何使用push子阵列?

我有3个数组,如:

var arr1 = [];
var arr2 = [];
var arr3 = [];

//When I want to add something into array then I use
arr1.push("text");
arr2.push("text");
Run Code Online (Sandbox Code Playgroud)

但是有可能做出类似下面的例子吗?

//example:
var arr = [];

arr['group1'].push("text1");
arr['group2'].push("text2");
arr['group2'].push("textn");

//and then iterate like:

for(item in arr['group1'])
  console.log(item);
Run Code Online (Sandbox Code Playgroud)

甚至可以做那样的事情吗?我试过但不行.

javascript jquery

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

如何在JQuery中知道元素onChange或onTrigger的旧值?

我有一个按钮:

<button id="btn1">55</button>
Run Code Online (Sandbox Code Playgroud)

所以我将按钮值更改为test2

$('#btn1').text("22");
Run Code Online (Sandbox Code Playgroud)

如果按钮oldValue大于newValue,我想显示背景图片.

如何从此按钮获取旧值?

"我有超过100个按钮,它们正在动态变化."

更新:是否有事件在更改之前触发?

javascript jquery

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