Angular Js…, функция ng-click не работает

0

Я новичок в AngularJs, моя проблема в том, что когда я нажал кнопку, которую я добавляю, она не вызывает функцию или функция не работает.

HTML

</tbody>
    <tr>
        <td><input type="text" class="form-control" ng-model="contact.name"/></td>
        <td><input type="text" class="form-control" ng-model="contact.email"/></td>
        <td><input type="text" class="form-control" ng-model="contact.number"/></td>
        <td colspan="2">
        <button class="btn btn-primary btn-block" ng-click="addContact()">Add Contact</button>
        </td>
    </tr>
    <tr ng-repeat="contact in contactlist">
        <td>{{contact.name}}</td>
        <td>{{contact.email}}</td>
        <td>{{contact.number}}</td>
        <td><button class="btn btn-danger" ng-click="removeContact(contact._id)"><i class="glyphicon glyphicon-trash"></i></button></td>
        <td><button class="btn btn-info" ng-click="editContact(contact._id)"><i class="glyphicon glyphicon-pencil"></i></button></td>
    </tr>
</tbody>    

Угловая

$scope.editContact = function(id){
    $http.get('/contactlist/' + id).success(function(response){
        $scope.contact = response;

        var addButton = angular.element('#custom_btn');

        addButton.empty();

        addButton.append('<button class="btn btn-success btn-block" ng-click="update()">Update Contact</buton>');
    });
};

$scope.update = function(){
    alert('test');
};

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

заранее спасибо.

  • 0
    пожалуйста, поместите ваш HTML-код, чтобы увидеть, что происходит в представлении
  • 0
    Пожалуйста, прочитайте этот ответ, прежде чем начинать с Angular - это избавит вас от головной боли
Показать ещё 3 комментария

1 ответ

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

Прежде всего, прочитайте эту дискуссию.

Вы можете использовать директиву ng-if в представлении html вместо JQuery:

<tr>
...
    <td colspan="2" id="custom_btn">
        <button class="btn btn-primary btn-block" ng-click="addContact()">Add Contact</button>
        <button ng-if="isEdited" class="btn btn-success btn-block" ng-click="update()">Update Contact</buton>
    </td>
</tr>

И в функции editContact:

$http.get('/contactlist/' + id).success(function(response){
    $scope.contact = response;

    $scope.isEdited = true;
});

Примечание: если вы получили ошибку для update() используйте представление $parent.update() в представлении.

  • 1
    Спасибо, сэр .. это решило мою проблему.
  • 0
    @ShiguriAnemone 'Ваш желанный друг;)

Ещё вопросы

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