Javascript $http.get在html页面中加载数据后的成功事件

Javascript $http.get在html页面中加载数据后的成功事件,javascript,html,angularjs,Javascript,Html,Angularjs,我想在从$http.get请求将数据加载到dom中之后初始化一些jquery插件。 见以下代码: //this is get request code. I'm getting json data properly. $http.get('reordering.json').success(function(data) { $scope.words = data.data; alert($("#sortable").html()) $("#sort

我想在从$http.get请求将数据加载到dom中之后初始化一些jquery插件。 见以下代码:

//this is get request code. I'm getting json data properly.
$http.get('reordering.json').success(function(data) {
        $scope.words = data.data;
        alert($("#sortable").html())
        $("#sortable").sortable();
});
下面的代码
  • 正在正确生成,但我无法初始化jquery插件,因为在
    alert()
    中,它没有显示从json加载的数据
    setTimeout()
    可以工作,但我想知道哪种方法是正确的

    <ul id="sortable" class="dragContainer">
       <li class="dragHolder" ng-repeat="word in words">
           <div class="drag">{{word.value}}</div>
       </li>
    </ul>
    
    • {{word.value}}
    首先。你现在做错了一些事情:

  • 不要在控制器中操作DOM
  • 添加带有指令的行为
  • 使用这两个建议,您可以通过在
    .dragContainer
    上激活jQuery UI sortable的指令来解决问题。这种指令的有效性。代码将类似于以下内容:

    <ul class="dragContainer" ng-model="words" ui-sortable>
       <li class="dragHolder" ng-repeat="word in words">
           <div class="drag">{{word}}</div>
       </li>
    </ul>
    
    我用
    $timeout
    替换了
    $http
    ,以模拟异步请求

    angular
    .module("app", ["ui.sortable"])
    .controller("ctrl", function ($scope, $timeout) {
      $timeout(function () {
        $scope.words = ["word one", "word two", "word three", "word four"];
      }, 1500);  
    })