Angularjs передает простую строку компоненту

Я отчаянно пытаюсь передать простую строку в компонент AngularJS, у меня есть следующий компонент angularJS:

асинхронному typeahead.componenet.js:

angular.module('asyncTypeahead').component('asyncTypeahead', {

    templateUrl: 'static/partials/async-typeahead/async-typeahead.template.html',
    bindings: {
        pk: '=',
        object: '=',
        objectType: '@'
    },
    controller: ['$scope','$http',
        function AsyncTypeaheadController($scope, $http) {

             var self = this;


            self.getTags = function (val) {
                console.log("async-typeahead input is: " +val);
                console.log("async-typeahead object keys are: " + angular.toJson(self.object));

                console.log("async-typeahead type is: " + angular.toJson(self.objectType));...

И следующий html для вызова компонента:

<async-typeahead object="$ctrl.actor.actor_tags" objectType={{ This is just a string }}></async-typeahead>

'val' - это просто ввод от typeahead.

я пробовал objectType={{ This is just a string }} а также objectType="This is just a string" а также objectType=This is just a string Я также попытался изменить привязку с '=' на '@' или '>', результат тот же:

всякий раз, когда я смотрю на консоль, я всегда получаю:

ввод async-typeahead: df

kes объекта async-typeahead: [37,43,49]

Тип async-typeahead: не определено

Что я делаю неправильно? Как передать простую строку в компонент angularJS?

1 ответ

Решение

Проблема с атрибутом objectType, который вы использовали в html. Имя директивы / компонента и все его атрибуты должны использоваться в качестве разделителя "-".

Правильный код прилагается ниже:

<async-typeahead object="$ctrl.actor.actor_tags" object-type="This is just a string"></async-typeahead>
Другие вопросы по тегам