2015-06-24 3 views
-1

У меня есть ngClick, который не срабатывает.ng-click внутри ui-router не работает

это мое мнение:

<div ng-repeat="(key,val) in user[docParam]"> 
     {{key}}<input type='text' class="form-control" name="{{key}}" ng-model="user[docParam][key]"> 
    </div> 



    <div class="col-xs-6 col-xs-offset-3" ng-if="nextDoc(docParam)"> 

     <a ui-sref="form.{{nextDoc(docParam)}}" class="btn btn-block btn-info"> 
     Proceed To {{nextDoc(docParam)}} &nbsp <span class="glyphicon glyphicon-circle-arrow-right"></span> 
     </a> 

    </div> 
    <div class="col-xs-6 col-xs-offset-3" ng-if="nextDoc(docParam)==false"> 

     <a ng-click="save(user)" class="btn btn-block btn-info"> 
     save &nbsp <span class="glyphicon glyphicon-circle-arrow-right"></span> 
     </a> 

    </div> 

и это app.js:

var $stateProviderRef = null; 
var $urlRouterProviderRef = null; 

var app= angular.module('app', [ 
    //'ui.bootstrap', 
    'ui.router', 
    'ui.bootstrap', 
    'flow', 
    'controllers', 
    'services', 
    'filters', 
    'directives', 
    'xeditable', 
    'ngResource', 
]) 


.run(['$rootScope', '$state', '$stateParams', 
    function($rootScope, $state, $stateParams) { 
    $rootScope.$state = $state; 
    $rootScope.$stateParams = $stateParams; 
    } 
]) 
.controller('AController', ['$scope', function($scope) {} ]) 
.controller('SController', ['$scope', function($scope) {} ]) 

.config(['$locationProvider', '$stateProvider', '$urlRouterProvider', '$httpProvider', 
    function($locationProvider, $stateProvider, $urlRouterProvider, $httpProvider) { 

     // XSRF token naming 
     $httpProvider.defaults.xsrfHeaderName = 'x-dt-csrf-header'; 
     $httpProvider.defaults.xsrfCookieName = 'X-CSRF-TOKEN'; 

     //$httpProvider.interceptors.push('httpInterceptor'); 

     $stateProvider 
     .state('form', { 
      url: "/form", 
      templateUrl: '../partials/form/form.html', 
      controller:'formController', 
     }); 
     $urlRouterProvider.deferIntercept(); 

     $urlRouterProvider.otherwise('/form'); 

     $locationProvider.html5Mode({ 
     enabled: false 
     }); 
     $stateProviderRef = $stateProvider; 
     $urlRouterProviderRef = $urlRouterProvider; 

}]) 

.run(['$q', '$rootScope', '$http', '$urlRouter', 
    function($q, $rootScope, $http, $urlRouter) { 

    var $state = $rootScope.$state; 

    $http 
     .get("../lib/modules.json") 
     .success(function(data) { 


     angular.forEach(data, function(value, key) { 

      var getExistingState = $state.get(value.name); 

      if(getExistingState !== null){ 
      return; 
      } 

      var state = { 
      "url": value.url, 
      "parent": value.parent, 
      "abstract": value.abstract, 
      "views": {} 
      }; 

      angular.forEach(value.views, function(view) { 
      state.views[view.name] = { 
       templateUrl: view.templateUrl, 
       controller:'formController', 
      }; 
      }); 

      $stateProviderRef.state(value.name, state); 

     }); 
     // Configures $urlRouter's listener *after* your custom listener 
$state.go("form.personalInfo"); 

     }); 
    } 
]); 

контроллер:

.controller('formController', function($scope,DocParamData,$state,$http) { 
    'use strict'; 


    $scope.docParam = $state.current.name.split('.'); 
    $scope.docParam = $scope.docParam[1]; 


    // we will store all of our form data in this object 

    $scope.saveUser = function(user) { 

    $http.post('/users', user).success(function(v){ 
     return user; 

    }).error(function(err) { 
     if(err.field && err.msg) { 
     // err like {field: "name", msg: "Server-side error for this username!"} 
     $scope.editableForm.$setError(err.field, err.msg); 
    } else { 
    // unknown error 
    $scope.editableForm.$setError('name', 'Unknown error!'); 
     } 
    }); 
    }; 

проблема с ng-click, оно не огонь. даже не простое предупреждение. ive allready пробовал все в потоках, и я понятия не имею, что не так. Я помню, что есть способ получить onclick для работы с областью. Но не могу найти правильный синтаксис.

+0

где ваш $ scope.save = функция метод (пользователь)? –

+0

его в контроллере-я отредактировал вопрос – dor

+1

функция называется saveUser не сэкономить – udalmik

ответ

0

Возможно, у вас есть ошибки в консоли, о которых вы не знаете.

Я уверен, что динамический синтаксис выражения {{...}} не поддерживается директивой ui-sref. См. this issue.

Также name="{{key}}" должен быть ng-attr-name="{{key}}"

+0

dynamic {{...}} un ui-sref работает отлично. Thnx – dor

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