Angularjs / TypeScript - 在组件中发送参数

时间:2017-12-26 11:52:36

标签: angularjs typescript

我正在使用一个结合angularjs和typescript的应用程序。

我已经创建了一个控制错误的组件,但我不知道如何在我的控制器中读取我的组件中发送的参数,以便在屏幕上显示它。

这是我的错误组件(errors.component.ts):

module MainErrors.Components {
    'use strict';

    export class MainErrorsComp extends MiApp.Components.ParentComponent {

        public templateUrl: string | Function;
        public controller: string | Function | (string | Function)[];

        static instance(): ng.IComponentOptions {
            return new MainErrorsComp();
        }

        constructor() {
            super();

            let bindings =  {
              msgErrorMicro: '='
            }
            this.templateUrl = '/templates/errors.html';
            this.controller = 'mainErrorsController as MainErrCtrl';
            this.setBindings(bindings);
        }

    }
}

这是我的错误控制器(errors.controller.ts):

 constructor(public $injector, public $scope) {
      super($injector);

      let vm = this;

      vm.setInjections($injector);
      vm.initComp();

      vm.msgError = // Here I want to collect the value of the msgErrorMicro parameter that I send from a html in the component, but I do not know how to do it

    }

这是html(errors.html)

<p>{{MainErrCtrl.msgError}}</p>

现在我从任何html调用我的错误组件,例如,从login.html:

<main-errors-comp msg-error-micro="Problems to connect from login"></main-errors-comp>

我想要&#34; msg-error-micro&#34;在&#34; errors.controller.ts&#34;

的变量vm.msgError中加载的参数

我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

使用'@'属性绑定而不是'='双向绑定。此外,如果您希望范围变量为msgErr,请使用:

let bindings = {'msgErr': '@msgErrMicro'};

有关详细信息,请参阅