почему currentValue привязки '<' не определено, когда я передаю в виде литеральной строки в angular - PullRequest
0 голосов
/ 26 апреля 2019

Здравствуйте, у меня есть привязка, скажем itemType:

Вот как я определяю это в моем компоненте:

 bindings: {    
     itemType: '<?',
 }

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

someController = function someController( $scope) {
            var self = this;

            self.itemType = 'someString';

Работа:

<some-component>
        open-id="singleSelect"
        item-type="ctrl.itemType"

//..

 itemType.currentValue = 'someString'

Не работает:

<some-component>
        open-id="singleSelect""
        item-type="someString"

// ..

itemType.currentValue = undefined

Ответы [ 2 ]

3 голосов
/ 26 апреля 2019

При предоставлении литеральной строки атрибуту компонента, который связан односторонним ('<') связыванием, используйте кавычки:

<some-component
    open-id="singleSelect"
    ̶i̶t̶e̶m̶-̶t̶y̶p̶e̶=̶"̶s̶o̶m̶e̶S̶t̶r̶i̶n̶g̶"̶ ̶
    item-type="'someString'" >
</some-component>

В противном случае someString оценивается как идентификатор свойства.Он связывает undefined, потому что это свойство не существует в области.

0 голосов
/ 26 апреля 2019

Используйте привязку @ для строк.

Привязка < предполагает, что аргумент является свойством $scope, а $scope.someString не существует, но $scope.ctrl.itemType существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...