0

// in engagement.component.ts:

class EngagementMembersController {
         alphabetic: Array<string> = 'abcdefghijklmnopqrstuvwxyz'.split('');
         constructor() {}

 export const EngagementSetupMember: IComponentOptions = {
    controller: EngagementMembersController,
    templateUrl: 'engagementMembers.component.html'
}

// in topbar.moudel.ts:

import {EngagementSetupMember} from './../engagement.component';
export const topBarMembersModule: string = angular
.module('topbar-members', [])
.controller(EngagementSetupMember.controller)
.component('topbarMemberComponant', {
    require: {
        controller: '^EngagementMembersController'
    },
    templateUrl: 'topBarMembers.component.html'
})
.name;

but when i use it, screen printed an error:

vendor.js:36574 Error: [$compile:ctreq] Controller 'EngagementMembersController', required by directive 'topbarMemberComponant', can't be found!

please help!

4
  • Could you also post the code for EngagementMembersController, and also show us how you are registering that controller (where you do .component() or .controller()) Commented Sep 7, 2018 at 6:11
  • yep, i edited it @HTom Commented Sep 7, 2018 at 6:29
  • Can you post the actual code for EngagementMembersController? Also, you seem to be registering that controller incorrectly. You need provide both a name and function/class for the controller. Something like .controller('EngagementMembersController ', EngagementSetupMember.controller) would be more correct, assuming EngagementSetupMember.controller is a function or class. Commented Sep 7, 2018 at 6:34
  • 1
    i edited code for EngagementMembersController. The second argument accepts only one function , object or type any[]. Commented Sep 7, 2018 at 6:52

1 Answer 1

0

I thought I must to call EngagementMembersController by another component before I could use:

require: {
    controller: '^EngagementMembersController'
},

in that case, i called in ui_router and it could be load

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.