2017-05-29 71 views
0

我使用angularjs和打字稿在那里我想创建一个指令如下:angularjs指令参数“FN”不是一个函数

这里是我的控制器:

export const test1 = { 
 
    template: require('./app.html'), 
 
    controller($scope, $http) { 
 
    
 
      $scope.hello = "hello app"; 
 

 
    } 
 
};

我知道如何使用javascript创建指令,但是如何使用const来创建它,然后导入它。

这是我在JS指令:

export const myDirective = { 
    directive() { 
     return { 
     restrict : "A", 
     template : "<h1>Made by a directive!</h1>" 
    }; 

    } 
}; 

笔者认为:

<div class="container"> 
<div class="row"> 
    <div ng-repeat="b in data"> 
     <div my-directive></div> 

    </div> 
</div> 
<div> 

我试图将其导入和使用:

import angular from 'angular'; 
import {ngAnimate} from 'angular-animate'; 
import {ngSanitize} from 'angular-sanitize'; 
import 'angular-ui-bootstrap'; 

import 'angular-ui-router'; 
import routesConfig from './routes'; 

import {hello} from './app/hello'; 
import {test1} from './test1/app'; 
import { myDirective} from './test1/directives' 

import './index.scss'; 

export const app = 'app'; 

angular 
    .module(app, ['ngAnimate', 'ngSanitize','ui.router', 'ui.bootstrap']) 
    .config(routesConfig) 
    .component('app', hello) 
    .component('test1', test1) 
    .directive('myDirective', myDirective) ; 

但是我得到这个错误:

Error: [ng:areq] Argument 'fn' is not a function, got Object 
+0

你可以只给控制器的类名称。像'Controller:test1'一样。只要确保你有正确的编号和顺序的参数。在上面的代码中,我可以看到该参数不同。你是否意味着导出'类'而不是'const'? –

+0

我不介意使用指令作为常量(作为我的示例代码中的控制器),但其余代码如何不同 – dream123

回答

0

您应该注册directive函数而不是myDirective对象。

.directive('myDirective', myDirective.directive) ; 
相关问题