我正在建立一个指令,该指令应该将html文件放入dom并使用angular的compile进行编译
我收到一个错误:
$ templateRequest不是函数
显然我做错了,不知道是什么,
这是我的指令:
module Uni.Directives {
export class uniTable implements ng.IDirective {
public restrict: string = 'EA';
public link: Function = (scope: ng.IScope,
$templateRequest: ng.ITemplateRequestService,
$compile: ng.ICompileService,
element: ng.IAugmentedJQuery,
attrs: ng.IAttributes) => {
$templateRequest("template.html",false).then(function (html) {
var template = angular.element(html);
element.append(template);
$compile(template)(scope);
});
}
}
angular
.module('TModule')
.directive('uniTable', [() => { return new Uni.Directives.uniTable() }]);
// ******** End adding to module **********
}
link
-function
的第二个参数是element。如果您要注入$templateRequest
,则$compile
需要在构造函数中进行注入:
export class uniTable implements ng.IDirective {
constructor(private $templateRequest: ng.ITemplateRequestService, private $compile: ng.ICompileService){
}
public restrict: string = 'EA';
public link: Function = (scope: ng.IScope,
element: ng.IAugmentedJQuery,
attrs: ng.IAttributes) => {
this.$templateRequest("template.html",false).then(function (html) {
var template = angular.element(html);
element.append(template);
$compile(template)(scope);
});
}
}
angular
.module('TModule')
.directive('uniTable', ['$templateRequest','$compile',($templateRequest,$compile) => { return new Uni.Directives.uniTable($templateRequest,$compile) }]);
我建议在处理诸如指令功能之类的工厂功能时使用功能。下面这个结构:
function uniTable($templateRequest: ng.ITemplateRequestService, $compile: ng.ICompileService): ng.IDirective{
return {
restrict: 'EA',
link: function(){
$templateRequest()//doStuff
}
};
}
uniTable.$inject = ['$templateRequest', '$compile'];
angular.module('TModule')
.directive('uniTable', uniTable );
我正在处理打字稿,并将一个函数传递给另一个函数。 如果我有一个传递到typescript中另一个函数的函数,我应该如何编写类型? 我尝试了,但似乎不起作用。
问题内容: 我正在尝试学习打字稿和angularjs(因此我是JavaScript的菜鸟) 通过angularjs教程,我看到他们做了这样的事情: 在普通的javascript中: 更重要的是,这些参数可以按任何顺序排列(或根本不按顺序排列),而Project实际上是用户定义的变量/类型。angularjs框架能够将参数映射到实际对象。 那么现在到Typescript,我该如何重新创建这种类型的功
我正在努力寻找 有什么不同?
有一个在角度和打字稿中使用的setTimeout示例: 在编译时,我得到了以下信息: 错误TS2322:类型“Timeout”不能分配给类型“number”。 我如何在typescript中使用setTimeout?
我已经在我的.html文件中定义了这些: 然后在test.js: 但Typescript错误地指出:“找不到名称‘树’” 我也尝试编译与和放置在test.js文件的顶部,但它再次出错: