我是Angular的新手,并试图弄清楚如何运行只针对一个模板的JavaScript。
如果我在主页中包含脚本,那么它不起作用,因为尚未加载与模板相关的特定DOM。
我已经尝试过活动代表团,但那不起作用。
有没有办法将脚本包含在控制器中,以便在调用模板加载后运行?
这是我的代码:
.when("/user-form", {
templateUrl: "templates/form.html",
controller: "FormControl"})
app.controller('FormControl', function($scope) {
});
答案 0 :(得分:2)
通常你需要声明指令(那些是你的独立(或半独立)模板块,它们都有自己的封装逻辑。
您需要注册指令,通常最好使用DDO - 指令定义对象(请查看下面的代码段)
第一个是链接函数,它是角度的DDO(指令定义对象)的一部分,并且一旦所有DOM都被渲染就会发生。
app.directive('helloWorld', function() {
return {
restrict: 'AE',
templateUrl: 'templates/myTemplate.html',
controller: ControllerFunction,
link: function(scope, elem, attrs) {
// your link function code
}
};
});
有很多关于链接功能的指南,它在渲染周期中占有一席之地。
还有一些方法可以处理控制器中的异步数据绑定,并且通常它会创建更好,更可维护的实践,因为链接函数结构通常意图更像dom-manipulationulative和jquery-like。
正如我从你的问题中理解的那样,你只需要阅读更多有关角度指令,模板,数据绑定,DDO和DDO结构及其标准属性和方法的材料。
祝你好运!