相关疑难解决方法(0)

AngularJS:如何在多个文件中创建控制器

我正在尝试将我的控制器分成多个文件,但是当我尝试在我的模块中注册它时我得到一个错误:

groupcontroller.coffee

app = angular.module('WebChat', []);
app.controller 'GroupController', ($scope) -> 
Run Code Online (Sandbox Code Playgroud)

usercontroller.coffee

app = angular.module('WebChat', []);
app.controller 'UserController', ($scope) -> 
Run Code Online (Sandbox Code Playgroud)

错误

错误:参数'GroupController'不是函数,未定义

从文档中我还没有真正得到模块方法所做的事情.它是否用"网聊"键存储我的控制器?

编辑: 似乎传递[]创建一个新模块并覆盖前一个模块

app = angular.module('WebChat', []);
Run Code Online (Sandbox Code Playgroud)

为了防止这种情况,你必须省略[]之类的

app = angular.module('WebChat');
Run Code Online (Sandbox Code Playgroud)

coffeescript angularjs

24
推荐指数
2
解决办法
2万
查看次数

AngularUI为模态控制器分隔文件

我的Angular应用程序有许多模态,我有AngularUI来提供模态指令.

http://angular-ui.github.io/bootstrap/

到目前为止,我有几个主控制器,这些都在app.js文件中作为路由.

$routeProvider.when '/dashboard',         templateUrl: '/templates/dashboard/dashboard.html', controller: 'DashboardController'
$routeProvider.when '/dataset/:panel_id', templateUrl: '/templates/dataset/dataset.html',   controller: 'DatasetController'
$routeProvider.when '/batches/:panel_id', templateUrl: '/templates/design/design.html',     controller: 'PanelController'  
Run Code Online (Sandbox Code Playgroud)

这很好用.

然后我创建了一个调用模态的函数,而modal有一个ConfigureModalCtrl的实例控制器.我最初在调用控制器文件的底部有这个,它工作正常.

$scope.invokeConfigureModal = (assay_id) ->
   $scope.assay_id = assay_id
   $scope.primer3 = $scope.getPrimer(assay_id)
   modalInstance = $modal.open(
     templateUrl: '/templates/configure_modal/configure_modal.html'
     controller: ConfigureModalCtrl
     windowClass: 'configure-dialog'
     resolve:
           primer3: ->
             $scope.primer3
   )
   modalInstance.result.then ((primer3) ->
      $scope.primer3 = primer3
      return
     ), ->
      return   
Run Code Online (Sandbox Code Playgroud)

现在我已将模态实例控制器移动到它自己的文件中,但调用函数找不到它.

angular.module('assaypipelineApp').controller "ConfigureModalCtrl", ($scope,  $modalInstance, primer3) ->
  $scope.primer3 = primer3['data']
  $scope.ok = ->  
    $modalInstance.close $scope.primer3
    return
  $scope.cancel = ->
    $modalInstance.dismiss "cancel" …
Run Code Online (Sandbox Code Playgroud)

angularjs angular-ui

9
推荐指数
1
解决办法
3816
查看次数

在Laravel和Angular Project中单独使用AngularJS控制器文件

我尝试这个解决方案

/sf/answers/1406137771/

/sf/answers/2431066081/

然后我收到了这个错误

获取http:// localhost:8000/js/TaskController.js net :: ERR_ABORTED 404(未找到)

然后我检查这个解决方案

https://github.com/angular/angular-cli/issues/8371

我的问题:我有一个Laravel和角度应用程序工作正常,但我想App.js通过将控制器分离到不同的文件使文件更清洁,我尝试了一些解决方案,我认为他们不适用于Laravel.

app.js

var app = angular.module('LaravelCRUD', []
    , ['$httpProvider', function ($httpProvider) {
        $httpProvider.defaults.headers.post['X-CSRF-TOKEN'] = $('meta[name=csrf-token]').attr('content');
    }]);


 app.controller('StudentController', ['$scope', '$http', function ($scope, $http) {
//Some code here that works fine 
}]);
Run Code Online (Sandbox Code Playgroud)

我也app.blade.php像这样更新我的文件

//somecodes
<!-- Scripts -->
<script src="{{ asset('js/app.js') }}" defer></script>
<script src="{{ asset('js/TaskController.js') }}" defer></script>
//somecodes
Run Code Online (Sandbox Code Playgroud)

我想创建一个StudentController.js包含此控制器代码的文件.

我使用这些版本

Angular CLI: 6.1.4
Node: 8.11.4
OS: win32 x64
Angular: undefined
...

Package                      Version …
Run Code Online (Sandbox Code Playgroud)

php laravel angularjs angular laravel-5.7

5
推荐指数
1
解决办法
206
查看次数

如何在angularjs的不同文件中分离控制器?

我有一个globale routes控制器,并希望为每个页面模板创建一个额外的控制器.

它完成如下:

var app = angular.module('myapp', ['ngSanitize', 'ngRoute']);

app.config(function($routeProvider){
    $routeProvider
        .when("/test", {
            templateUrl:    "./templates/test.html",
            controller:     "testController"
        })
});

app.controller('test', function() {
    //...
});
Run Code Online (Sandbox Code Playgroud)

问题:如何将控制器移动到自己的testController.js文件中?我试过了,但是控制器不再工作了.

如果我在自己的文件中提取控制器,我必须采取哪些步骤?

  1. 如何var app从testController.js中访问模块变量?
  2. 我是否必须将每个控制器作为新<script src="js/testController.js"></script>标签条目包含在我的html模板中?这将是麻烦的,因为我想将我的应用程序分成许多控制器,这将导致许多导入.

html javascript angularjs

2
推荐指数
1
解决办法
65
查看次数

与Yeoman一起使用多个角度控制器

我正在使用Yeoman在Angular中构建练习应用程序.我正在尝试将控制器保存在单独的文件中.

但是,当进入我的"注册"路线时,它会在Chrome开发工具中引发错误:

"Error: [ng:areq] Argument 'RegisterCtrl' is not a function, got undefined http://errors.angularjs.org/1.2.6/ng/areq?p0=RegisterCtrl&p1=not%20aNaNunction%2C%20got%20undefined".

即使它抛出错误,我仍然可以访问注册页面并查看"hello world"内容.

我看过:

但是,尽管尝试了一些他们的建议,但都没有帮助解决我的问题

目前,我的应用程序布局为:

app   
...
--scripts  
---controllers  
-----main.js  
-----register.js
---app.js
...
Run Code Online (Sandbox Code Playgroud)

当我将register.js的内容移动到Main.js时,它不再抛出错误.

App.js看起来像这样:

angular.module('angYeomanApp', [
'ngCookies',  
'ngResource',  
'ngSanitize',  
'ngRoute',  
'ui.bootstrap'  
 ])  
   .config(function ($routeProvider) {
     $routeProvider
       .when('/', {
         templateUrl: 'views/main.html',
         controller: 'MainCtrl'
        })
       .when('/register', {
         templateUrl: 'views/register.html',
         controller: 'RegisterCtrl'
       })
       .otherwise({
         redirectTo: '/'
       });
    });
Run Code Online (Sandbox Code Playgroud)

Main.js:

angular.module('angYeomanApp')
  .controller('MainCtrl', function ($scope) {

});
Run Code Online (Sandbox Code Playgroud)

Register.js:

angular.module('angYeomanApp')
  .controller("RegisterCtrl", function ($scope) {

});
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激!

angularjs yeoman

1
推荐指数
1
解决办法
2569
查看次数