Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t在同一局部视图中加载两个控制器Angularjs_Javascript_Angularjs - Fatal编程技术网

Javascript Can';t在同一局部视图中加载两个控制器Angularjs

Javascript Can';t在同一局部视图中加载两个控制器Angularjs,javascript,angularjs,Javascript,Angularjs,我试图加载第二个控制器来填充视图中的select,但它不起作用。 这是我的密码: app.js (function() { 'use strict'; angular .module('app.lazyload') .constant('APP_REQUIRES', { scripts: { 'modernizr': ['vendor/modernizr/modernizr.custom.js'], 'icons':

我试图加载第二个控制器来填充视图中的select,但它不起作用。 这是我的密码:

app.js

(function() {
'use strict';

angular
    .module('app.lazyload')
    .constant('APP_REQUIRES', {
      scripts: {
        'modernizr':          ['vendor/modernizr/modernizr.custom.js'],
        'icons':              ['vendor/fontawesome/css/font-awesome.min.css',
                               'vendor/simple-line-icons/css/simple-line-icons.css'],
        'companiesCtrl':      ['app/js/modules/companies/data.js','app/js/modules/companies/controller.js'],
        'companyDetailCtrl':    ['app/js/modules/companies/data.js','app/js/modules/companies/controller_detail.js'],
        'documentTypeCtrl':    ['app/js/modules/document_type/data.js','app/js/modules/document_type/controller.js']

    });

})();
////////////////////////////////////
.state('app.companies.detail', {
          url :'/companies.detail/',
          title : 'Company',
          templateUrl : helper.basepath('companies/companies.detail.html'),
          resolve : helper.resolveFor('companyDetailCtrl','documentTypeCtrl'),
          controller : ('companyDetailCtrl')
      })
      .state('app.companies.document_type', {
          url :'/companies.detail/',
          title : 'Document Type',
          templateUrl : helper.basepath('companies/companies.detail.html'),
          controller : ('documentTypeCtrl')
      })
company.detail/controller.js

(function() {
'use strict';
angular
    .module('assets4')
    .controller('companyDetailCtrl', companyDetailCtrl);

companyDetailCtrl.$inject = ['$scope','Data','$log', '$state'];

function companyDetailCtrl($scope, Data, $log, $state){
    $log.log('Controller > companyDetailCtrl loaded');
    Data.get('companies/'+$scope.company_id).then(function(data){
        $scope.companyDetail = data[0];
        //$log.log($scope.companyDetail);
    });
};
})();
(function() {
'use strict';
angular
    .module('assets4')
    .controller('companiesCtrl', companiesCtrl)

companiesCtrl.$inject = ['$scope','Data','$log', '$state'];

function companiesCtrl($scope, Data, $log, $state) {
    Data.get('companies').then(function(data){
        $scope.companies = data;
        $log.log('Controller > companiesCtrl loaded');
    });

    $scope.onRowClick = function(company_id){
        $scope.company_id = company_id;
        $state.go('app.companies.detail');
    };
};  
})();
文档类型/controller.js(此文件已在浏览器中正确加载)

编辑>添加公司/controller.js

(function() {
'use strict';
angular
    .module('assets4')
    .controller('companyDetailCtrl', companyDetailCtrl);

companyDetailCtrl.$inject = ['$scope','Data','$log', '$state'];

function companyDetailCtrl($scope, Data, $log, $state){
    $log.log('Controller > companyDetailCtrl loaded');
    Data.get('companies/'+$scope.company_id).then(function(data){
        $scope.companyDetail = data[0];
        //$log.log($scope.companyDetail);
    });
};
})();
(function() {
'use strict';
angular
    .module('assets4')
    .controller('companiesCtrl', companiesCtrl)

companiesCtrl.$inject = ['$scope','Data','$log', '$state'];

function companiesCtrl($scope, Data, $log, $state) {
    Data.get('companies').then(function(data){
        $scope.companies = data;
        $log.log('Controller > companiesCtrl loaded');
    });

    $scope.onRowClick = function(company_id){
        $scope.company_id = company_id;
        $state.go('app.companies.detail');
    };
};  
})();
编辑>添加companys.html

<div class="row" ng-controller="PanelsCtrl as panel">
<div class="col-xs-12">
    <div class="panel panel-default" >
        <div class="panel-heading">&nbsp;
            <paneltool tool-refresh="traditional"></paneltool>
        </div>
        <div class="panel-body">
            <div ui-view>
                <div class="table-responsive">
                    <table id="companiesGrid" class="table table-striped table-bordered table-hover">
                        <thead>
                            <tr>
                                <th>ID</th>
                                <th>{{ 'companies.grid.NAME' | translate }}</th>
                                <th>{{ 'companies.grid.DOCUMENT' | translate }}</th>
                                <th>{{ 'companies.grid.ADDRESS' | translate }}</th>
                                <th>{{ 'companies.grid.PHONE1' | translate }}</th>
                                <th>{{ 'companies.grid.EMAIL' | translate }}</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr ng-repeat="company in companies track by $index" ng-class="{'active': company.company_id}" ng-click="onRowClick(company.company_id)">
                                <td>{{company.company_id}}</td>
                                <td>{{company.company_name}}</td>
                                <td>{{company.company_document_number}}</td>
                                <td>{{company.company_address}}</td>
                                <td>{{company.company_phone1}}</td>
                                <td>{{company.company_email}}</td>
                            </tr>

                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>
</div>
</div>

身份证件
{{'companys.grid.NAME'| translate}}
{{'companys.grid.DOCUMENT'| translate}}
{{'companys.grid.ADDRESS'| translate}}
{{'companys.grid.PHONE1'| translate}}
{{'companys.grid.EMAIL'| translate}}
{{company.company_id}
{{公司.公司名称}
{{公司.公司\文件\编号}
{{公司.公司地址}
{{company.company_phone1}}
{{company.company_email}
编辑>添加companys.detail.html

<form role="form" class="form-horizontal">
<div class="form-group">
    <label class="col-lg-2 control-label">{{'companies.grid.ID' | translate}}</label>
    <div class="col-lg-10">
        <input type="text" placeholder="" class="form-control" ng-model="companyDetail.company_id" disabled/>
    </div>
</div>
<div class="form-group">
    <label class="col-lg-2 control-label">{{'companies.grid.NAME' | translate}}</label>
    <div class="col-lg-10">
        <input type="text" placeholder="" class="form-control" ng-model="companyDetail.company_name"/>
    </div>
</div>
<div class="form-group mb">
   <label class="col-lg-2 control-label">Chosen Ajax</label>
   <div class="col-lg-10">
      <select chosen="" ng-model="document_type" ng-options="s for s in form.states" width="'100%'" class="chosen-select input-md">
         <option value=""></option>
      </select>
   </div>
</div>
<div class="form-group">
    <label class="col-lg-2 control-label">{{'companies.grid.DOCUMENT' | translate}}</label>
    <div class="col-lg-10">
        <input type="text" placeholder="" class="form-control" ng-model="companyDetail.company_document_number"/>
    </div>
</div>
<div class="form-group">
    <label class="col-lg-2 control-label">{{'companies.grid.ADDRESS' | translate}}</label>
    <div class="col-lg-10">
        <input type="text" placeholder="" class="form-control" ng-model="companyDetail.company_address"/>
    </div>
</div>
<div class="form-group">
    <label class="col-lg-2 control-label">{{'companies.grid.PHONE1' | translate}}</label>
    <div class="col-lg-10">
        <input type="text" placeholder="" class="form-control" ng-model="companyDetail.company_phone1"/>
    </div>
</div>
<div class="form-group">
    <label class="col-lg-2 control-label">{{'companies.grid.PHONE2' | translate}}</label>
    <div class="col-lg-10">
        <input type="text" placeholder="" class="form-control" ng-model="companyDetail.company_phone2"/>
    </div>
</div>
<div class="form-group">
    <label class="col-lg-2 control-label">{{'companies.grid.WEBSITE' | translate}}</label>
    <div class="col-lg-10">
        <input type="text" placeholder="" class="form-control" ng-model="companyDetail.company_website"/>
    </div>
</div>
<div class="form-group">
    <label class="col-lg-2 control-label">{{'companies.grid.EMAIL' | translate}}</label>
    <div class="col-lg-10">
        <input type="text" placeholder="" class="form-control" ng-model="companyDetail.company_email"/>
    </div>
</div>
<div class="form-group">
    <label class="col-lg-2 control-label">{{'companies.grid.LOGO' | translate}}</label>
    <div class="col-lg-10">
        <input type="text" placeholder="" class="form-control" ng-model="companyDetail.company_logor" disabled/>
    </div>
</div>
<button type="submit" class="btn btn-lg btn-info" onclick="history.back()">Volver</button>
<button type="submit" class="btn btn-lg btn-info" onclick="">Guardar</button>
<button type="submit" class="btn btn-lg btn-info" onclick="">Eliminar</button>
</form>

{{'companies.grid.ID'| translate}}
{{'companies.grid.NAME'| translate}}
精选Ajax
{{'companies.grid.DOCUMENT'| translate}}
{{'companies.grid.ADDRESS'| translate}}
{{'companies.grid.PHONE1'| translate}}
{{'companies.grid.PHONE2'| translate}}
{{'companies.grid.WEBSITE'| translate}}
{{'companies.grid.EMAIL'| translate}}
{{'companys.grid.LOGO'| translate}}
玩美女人
瓜达尔
Eliminar
app.company.detail正在完美加载,填充完整表单。
我也尝试过使用ng控制器,但什么也没发生。 我打不到这个密码

$log.log('Controller>documentTypeCtrl-loaded')

我做错了什么? 我对Angularjs很陌生


谢谢。

我在路由配置中加载了控制器。

我认为您在inject语句中缺少“$state”:

不正确 对的
你能把你的
html
?我编辑并添加了html+companys/controller.js你确定
DataDocType.get('document\u type')
返回承诺吗?如果这个承诺没有得到解决,回调可能永远不会执行。很抱歉,我没有理解这个问题。如果我加载page//app/server/api/document\u type/document\u type,它将返回json数据
   documentTypeCtrl.$inject = ['$scope','DataDocType','$log','$state'];