Ng-click изменить значение переменной

Я пытаюсь настроить ng-click для изменения var внутри моего контроллера.

Я попытался настроить ng-click для таргетинга на var mar.

<div class = "Button" ng-click = "mar = 'test-2';">

внутри controller.js у меня есть это

eventsApp.controller('EventController', function EventController($scope) {

    //variables
    var mar = 'test-1';

}

Итак, я надеялся изменить var mar на «test-2»; но моя html-страница просто продолжает отображать test-1. есть ли директива или способ динамического изменения var mar?

Я нет хочу настроить $scope.mar = 'test-1' и манипулировать им. Как я могу это сделать? Спасибо.

Ваше обновление не имеет смысла. Вы хотите иметь возможность обновлять переменную, которая находится в вашем контроллере, но вы не хотите иметь какие-либо отношения для этой переменной между вашим контроллером и вашим представлением? Это не совсем возможно. Возможно, вы могли бы расширить свой вопрос, чтобы точно описать, чего вы пытаетесь достичь здесь.

Lex 17.04.2019 21:53

поэтому я хочу динамически изменять переменную, чтобы использовать ее в функции. вар tModel = modelService.models(mar); это будет так называться? вар tModel = modelService.models($scope.mar); ?

lrningPrgrming 17.04.2019 21:56

Вы не дали нам много информации для продолжения, но я условно скажу, что да, это был бы способ использовать двустороннюю привязку данных в AngularJS.

Lex 17.04.2019 22:00
Знаете ли вы, что директивы являются одной из самых мощных и универсальных функций Angular?
Знаете ли вы, что директивы являются одной из самых мощных и универсальных функций Angular?
Директивы позволяют расширять HTML новыми элементами и атрибутами и даже создавать собственные структурные директивы для манипулирования DOM. С...
Разница между Angular и React
Разница между Angular и React
React и AngularJS - это два самых популярных фреймворка для веб-разработки. Оба фреймворка имеют свои уникальные особенности и преимущества, которые...
0
3
705
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны объявить это на $scope и у вас есть опечатка

eventsApp.controller('EventController', function EventController($scope) {

    //variables
    $scope.mark = 'test-1';

}

РЕДАКТИРОВАТЬ

Если вы не хотите использовать $scope, вы должны присвоить this переменной внутри вашего контроллера. Вот небольшой пример.

var app = angular.module('app', []);

app.controller('EventController', function ($scope) {

    //variables
    var vm = this;
    vm.mar = 'test-1';

});
<div ng-app = "app" ng-controller = "EventController as ctrl">
  <button class = "Button" ng-click = "ctrl.mar = 'test-2';">
    Click me!
  </button>
  <p>{{ctrl.mar}}</p>
</div>

Если вы хотите использовать переменную внутри функции на контроллере, вы просто используете $scope.mar или vm.mar.

есть ли способ вызвать $scope.mark в качестве параметра функции? Например. вар tModel = modelService.models(mar);

lrningPrgrming 17.04.2019 21:52

Вы можете просто использовать $scope.mark внутри этой функции. Вы используете контроллер в состоянии?

MSclavi 17.04.2019 21:55

Другие вопросы по теме