seajs加载angularjs
angularjs是自动完成模块的控制的,而seajs加载模块是异步的,所以不做修改,直接seajs加载angularjs会出错。
在这里讲下自己的解决方法
一、需要把ng-app去掉,ng-app是自动加载的。
二、可能angularjs本身带有模块加载的功能,所以没做支持其它js加载angularjs的吧。要让angularjs支持seajs加载,需要加一个代码
if (typeof define === "function" && (define.amd || define.cmd)) { define("angular", [], function () { return angular; }); }
三、竟然angularjs都动态加载了,那么angularjs的controller的方法也是需要动态加载,这里就要更改它的自动完成控制模块改成手动完成。
angular.module("APPName",[]).controller("ControlName",["$scope",function($scope){ $scope.name="sd"; }]);
四、最后还需要加上一句
angular.bootstrap(document.body,["APPName"]);
五、可以把controller方法封装在一个test.js里,这个js也遵循cmd规范
define(function (requie, exports, module) { exports.conttt=function($scope) { $scope.name="sd"; }; });
然后第二步那里可以改成
angular.module("APPName",[]).controller("ControlName",["$scope",test.conttt]);
五、再提供下完整代码
html
{{name}}
JS
seajs.use(["jquery", "bootstrap", "angular", "test"], function ($, bt, angular, test) { angular.module("APPName",[]).controller("ControlName",["$scope",test.conttt]); angular.bootstrap(document.body,["APPName"]); });