1

フォルダーとサブフォルダーを使用して、一種の FilePanels を実装します。

Chrome 開発者ツールから視覚的にの属性があることui.item.sortable.droptargetがわかりますが、コードで (jquery メソッドを介して) アクセスしようとすると、10 (最近いた別のフォルダーの親の値) が返されます。更新されないのはなぜですか?別のフォルダーに移動すると、そのフォルダーのサーバーの値に基づいて新しい値が割り当てられます。DOM は正しく更新されています...dataparent-folder-id == 2datavm.parentId

<ul ui-sortable="vm.sortableOptions"
        ng-model="vm.cache.items"
        data-parent-folder-id="{{vm.parentId}}">

ここに画像の説明を入力


後で追加: .data() ゲッターを更新しui.item.sortable.droptarget.data("parentFolderId")ても、まだ返されます10


更新 2: プランカーのデモを追加: http://plnkr.co/edit/14XfBOTFuJZ0oSy2ozqh?p=preview

<html ng-app="plunker">

  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.6/angular.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-alpha1/jquery.min.js"></script>
    <script src="app.js"></script>
  </head>

  <body ng-controller="MainCtrl">
    <div class="xxx" data-parent="{{parentId}}"></div>
    <button ng-click="getParentId()">Get Parent Id</button>
    <br>
    <button ng-click="setParentId(15)">Set Parent Id to 15</button>
    <br>
    <button ng-click="getParentId()">Get Parent Id</button>
    <br>
    {{parentId}}
  </body>

</html>

app.js

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

app.controller('MainCtrl', function($scope, $element) {

  activate();

  function activate() {
    $scope.parentId = 10;
  }

  $scope.setParentId = function(number) {
    $scope.parentId = number;
  }

  $scope.getParentId = function() {
    $scope.parentId = $($element).find('.xxx').data('parent');
  }

});

この順序でボタンをクリックすると: Set - Get-data値が正常に更新されます。しかし、別の順序でクリックGet - Set - Getすると、 - 前のコードと同じ問題が発生します - 取得時に値が新しい値で更新された後 - 古い値が返されます。

4

2 に答える 2