2015-08-11 3 views
0

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

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>  

ANGULAR

$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

, пожалуйста, прочитайте [этот ответ] (http://stackoverflow.com/questions/14994391/thinking-in-angularjs-if-i-have -a-jquery-background/15012542 # 15012542) перед тем, как начать с Angular - это сэкономит вам много головной боли –

+0

это опечатка: у вас есть 'addContact()', но ваша реальная функция - 'editContact()' –

ответ

2

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

Вы можете использовать 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 'Ваш приветственный помощник;) –

Смежные вопросы