2015-12-04 2 views
0

Ситуация возникает, когда я хочу преобразовать форму в форму, поэтому мне нужно создать() в ng-submit change to update(). Как я могу это сделать? .Concrete пример:Как изменить функцию в ng-submit angularjs

<form name="articleForm" class="form-horizontal" ng-submit="create()" novalidate> 

в

<form name="articleForm" class="form-horizontal" ng-submit="update()" novalidate> 

Спасибо!

ответ

0

насчет:

<form name="articleForm" class="form-horizontal" ng-submit="submit()" novalidate> 

, а затем что-то вроде этого в контроллере:

$scope.isNewUser = typeof $scope.user.id === 'undefined'; 

function create() {...} 
function update() {...} 

$scope.submit = function() { 
    $scope.isNewUser ? create() : update(); 
} 
+0

Большое спасибо, это хорошая идея! –

+0

добро пожаловать! Я рад, что это помогло. –

0

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

0

определяют $ scope.isCreate = правда, // верно для создания, ложь для обновления в Угловая контроллер и в форме

<form novalidate ng-submit="isCreate?create():update()"> 
2

Просто используйте трехкомпонентной с одна переменная, определенная в $ объеме:

<form name="articleForm" class="form-horizontal" ng-submit="isCreation? create() : update()" novalidate> 

в вашем контроллере определить:

$scope.isCreation = true; 

и изменить его на ложь, если вы хотите обновление(), чтобы срабатывать

0

Немного позже, но полезная

 <form class="form-horizontal" name="BannerForm" 
     ng-submit="call(submitOption)" novalidate> 


//**For MultiSubmit 
    $scope.call = function(expr) { 
    return $scope.$eval(expr); 
    }; 

//For InsertNew 
    $scope.InsertData= function(){ 
    $scope.submitOption="add()"; 
    } 


//For UpDate 
    $scope.UpdateData= function(){ 
    $scope.submitOption="update()"; 
    } 
Смежные вопросы