Зачем говорить об этой ошибке?: Ошибка: [$compile: nonassign] Выражение ‘undefined’ … не может быть назначено! AngularJS 1.5

#javascript #node.js #angularjs

#javascript #node.js #angularjs

Вопрос:

Я пытаюсь создать компонент для создания «Твитов» на моем собственном веб-сайте, и когда я пытаюсь что-то написать в текстовую область (ничего не могу написать)

У меня есть это изображение, которое показывает ошибку:

Ошибка AngularJS 1.5

И это мой код в «editorTweets.component.js «:

 class EditorTweetsComponentCtrl {
    constructor($scope, $state, User, Tweets){
        "ngInject";
        this._Tweets = Tweets;
        this._$state = $state;
        this._$scope = $scope;
        
        this.currentUser = User.current;
        console.log(this.currentUser);


        this.tweet = {
          body: ''
        }
        
        
    }

    submit() {
        console.log(this.tweet.body);

      }

}

let EditorTweets = {
    bindings: {
        tweet: '='
    },
    controller: EditorTweetsComponentCtrl,
    templateUrl: 'components/tweets-helpers/editorTweets.html'
};

export default EditorTweets;
  

и представление .html:

 <div class="container-editor-tweets">
    <div class="left-editor-tweets">
        <img ng-src="{{$ctrl.currentUser.image}}" alt="Img-User"/>
    </div>

    <div class="right-editor-tweets">
        <div class="editor-tweet-body">
            <textarea name="tweet_msg" id="tweet_msg" placeholder="Whats going on?..." ng-model="$ctrl.tweet.body"></textarea>
        </div>
        <div class="editor-tweet-options">
            <button class="btn-submit-tweet" type="button" ng-click="$ctrl.submit()">Tweet</button>
        </div>
    </div>
</div>

  

Комментарии:

1. Вы пробовали прикрепить свой твит к области видимости вместо привязок, таких как scope: { 'tweet': '='}

Ответ №1:

У компонента не должно быть привязок, потому что мне не нужно отправлять какие-либо данные, поэтому компонент пытается получить «tweet», и это ошибка.

Это правильный код:

 let EditorTweets = {
    controller: EditorTweetsComponentCtrl,
    templateUrl: 'components/tweets-helpers/editorTweets.html'
};