AngularJs код эффективности MvC Framework

0

Я новичок в AngularJs и еще не понял все, у меня много вопросов, и это следующее:

  1. Я хочу ударить код на контроллере во время onclick, возможно ли это?
  2. Или это невозможно, поскольку контроллер всегда загружается при загрузке представления?
  3. Какой лучший способ для меня создать функцию, которая будет срабатывать только при нажатии кнопки? И не каждый раз загружается страница. (Метод AngularJs)

Это мой html:

<ion-view view-title="Account Fixer">
      <ion-content class="padding">
        <div class="list">
            <label class="item item-input item-stacked-label">
                <span class="input-label">IrId</span>
                <input type="text" placeholder="irid" value="{{irid}}" disabled>
            </label>
            <label class="item item-input item-stacked-label">
                <span class="input-label">Email</span>
                <input type="text" placeholder="Enter New Email" value="{{email}}">
            </label>
            <button class="item button button-block button-positive" ng-click="postForm()">Fix Issue</button>
        </div>
      </ion-content>
    </ion-view>

Это мой контроллер:

.controller('TestCtrl',function(Test,$scope, $http, $stateParams){

$scope.email = Test.get('AB12345').email;
$scope.irid = Test.get('AB12345').irid;

//I want to hit this during onclick ONLY
    $scope.postForm = function(dataForm){

    var encodedString = 'action=' + 
            encodeURIComponent("QA_fixEmail") +
            '&irid=' +
            encodeURIComponent(Acct.acctData().irid) + 
            '&email=' +
            encodeURIComponent(dataForm.email) + 
            '&password=' +
            encodeURIComponent("abcd1234");
    $http({
        method: 'POST',
        url: 'someservice',
        data: encodedString,
        headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    })
    .success(function(data,status){
        console.log(status);
    })
    .error(function(data, status){
        console.log(status);
    })
}
})
  • 0
    То, что вы показали до сих пор, должно работать просто отлично. Как это не работает?
  • 0
    Это работает, чего я хочу добиться - это нажать ТОЛЬКО на $ scope.postForm во время нажатия кнопки в моем html
Теги:
model-view-controller

1 ответ

1
Лучший ответ

В: Возможно ли, чтобы [ударить функцию] во время onclick?

A: Да, конечно. Просто используйте ngClick

Вот некоторые примеры:

События AngularJS

Обратите внимание, что в одной ссылке используется ng-click, а в другой ссылке используется ngClick. Они эквивалентны:

AngularJS, ng-click vs ng: click vs ngClick

  • 0
    сэр Пол, но почему, когда я ставлю точку останова на код, она достигает $ scope.postForm = function (), даже если я еще не нажимал кнопку
  • 0
    Потому что ОПРЕДЕЛЕНИЕ функции JS (выполняется при первом разборе кода) отличается от ИСПОЛНЕНИЯ функции (выполняется только при ее вызове - например, по событию click). Поместите свою точку останова ВНУТРИ postForm, и вы увидите, что я имею в виду. 'Надеюсь, это поможет :)
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню