フォルダーとサブフォルダーを使用して、一種の FilePanels を実装します。
Chrome 開発者ツールから視覚的にの属性があることui.item.sortable.droptarget
がわかりますが、コードで (jquery メソッドを介して) アクセスしようとすると、10 (最近いた別のフォルダーの親の値) が返されます。更新されないのはなぜですか?別のフォルダーに移動すると、そのフォルダーのサーバーの値に基づいて新しい値が割り当てられます。DOM は正しく更新されています...data
parent-folder-id == 2
data
vm.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
すると、 - 前のコードと同じ問題が発生します - 取得時に値が新しい値で更新された後 - 古い値が返されます。