一尘不染

将一些HTML附加到DOM后初始化AngularJS控制器

angularjs

有没有办法从纯JavaScript使用$
compile?我正在将基本的javascript和使用Angular的地方结合起来,无法找到一种方法来做这样的事情:http
:
//jsfiddle.net/DavidSlavik/bFdcJ/1/

我想我需要使用$ compile,但是从没有任何作用域的地方使用。

angular.module('myApp', []);

function ExpensesCtrl($scope) {

    // Here are some master functions...

}


$(function () {

   // Here is the Ajax function that returns html from my MVC action processed with Razor
   // Here I'm not using AngularJS and scopes...
   var htmlFromAjax = '<div id="mapOrder" ng-controller="sortable"><div ng-repeat="item in SortItems">{{item.Title}}</div></div>';
   $('body').append(htmlFromAjax);

});

function sortable($scope, $http, $element) {

    // Here is the Ajax function that return JSON object. For example it is commented and used static variable SortItems in scope.
    //$http.get('someUrlWitchReturnsJsonObject')
    //    .success(function (e) {
    //        $scope.SortItems = e;
    //    });

    $scope.SortItems = JSON.parse('[{"Title":"ddddddd","MapId":5,"Order":0},{"Title":"Moje mapa","MapId":3,"Order":2},{"Title":"asdas","MapId":4,"Order":3},{"Title":"asds","MapId":7,"Order":4},{"Title":"Pokus","MapId":8,"Order":5},{"Title":"Hello world!!!","MapId":1,"Order":10}]');

阅读 196

收藏
2020-07-04

共1个答案

一尘不染

angular.bootstrap($("#targetElmForApp")[0], ["myApp"]);

说明:

angular.bootstrap(rootElementForApp, arrayOfModulesForTheApp)

第一个参数设置应用程序的根元素,ng-app否则将通过使用伪指令执行此操作。

第二个参数是定义应用程序的模块列表。这通常是在其中定义应用程序的单个模块。

因此,我们所做的与以下内容相同:

<div id="targetElmForApp" ng-app="myApp"></div>

请参阅:
http :
//docs.angularjs.org/api/angular.bootstrap

http://docs.angularjs.org/guide/bootstrap

2020-07-04