Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对象操纵后角度模板未更新_Javascript_Angularjs - Fatal编程技术网

Javascript 对象操纵后角度模板未更新

Javascript 对象操纵后角度模板未更新,javascript,angularjs,Javascript,Angularjs,我的目标如下: $scope.allSessions = { set: {}, pending: [] }; 然后,一个方法用一组对象填充集属性,如下所示 "2014-06-07-11-30": { blah blah } 这将生成一个很好的日期列表(如图中的顶部): 我写了一个方法,当通过ng点击按下X时,日期从列表中删除,并移动到挂起的“X会话未计划”部分。该方法从集合属性中删除条目,并在挂起数组中创建一个条目。以下是用于此目的的方法和模板: $scope.ma

我的目标如下:

$scope.allSessions = {
    set: {},
    pending: []
};
然后,一个方法用一组对象填充
属性,如下所示

"2014-06-07-11-30": {
    blah blah
}
这将生成一个很好的日期列表(如图中的顶部):

我写了一个方法,当通过ng点击按下X时,日期从列表中删除,并移动到挂起的“X会话未计划”部分。该方法从
集合
属性中删除条目,并在
挂起
数组中创建一个条目。以下是用于此目的的方法和模板:

$scope.makeSessionPending = function(session) {
    // Create an entry in pending (only length is required)
    $scope.allSessions.pending.push({
        length: session.length
    });

    // Remove from set sessions
    delete $scope.allSessions.set[session.index];
};

<ul class="sessions">
    <li ng-repeat="session in allSessions.set">
        [[ session.dateString ]]
        <span class="status" ng-class="session.status" ng-if="statusReceived"></span>
        <span class="make-pending" ng-click="makeSessionPending(session)"><i class="icon icon-times"></i></span>
        <span class="remove" ng-click="removeSession(session)"><i class="icon icon-trash-o"></i></span>
    </li>
    <li class="pending" ng-if="allSessions.pending.length">
        <i class="icon icon-ellipsis-h"></i>
        [[ allSessions.pending.length ]] session[[ (allSessions.pending.length == 1) ? '' : 's' ]] not scheduled
    </li>
</ul>
$scope.makeSessionPending=函数(会话){
//在挂起中创建条目(只需要长度)
$scope.allSessions.pending.push({
长度:session.length
});
//从集合会话中删除
删除$scope.allSessions.set[session.index];
};
  • [[session.dateString]]
  • [[allSessions.pending.length]]会话[[(allSessions.pending.length==1)?“'s']]未计划
我的问题是,在第一次使会话挂起后,
[[allSessions.pending.length]]
不再更新。但是,如果我在
makeSessionPending
方法的末尾记录console日志,它看起来都是正确的,只是模板没有反映挂起数组长度的变化

另外需要注意的几件奇怪的事情是,如果我检查html中的那一行,它是正确的。当我突出显示该行时,它会更新


这个问题实际上是一个CSS问题,只要我在包含问题行的元素上放置
位置:relative
,它就不会再更新了


最后,我不得不取消
位置:relative
并独立地解决它,您的代码在这里似乎工作得很好:感谢Plunker,我没有想到要在那里测试它。我注意到,在我的代码中,如果删除delete语句,pending.length将正常更新。我真的很不明白为什么会这样!我所能建议的是,你继续比较,看看Plunker代码与你的代码有什么不同。在你使用Plunker之后,我决定删除与列表相关的CSS,这似乎是一个位置:li引起问题的相对位置,这很奇怪!