2016-05-31 3 views
0

Я новичок в angular. У меня есть список post и post edit view. мой list.html. Я хочу отредактировать сообщение при нажатии кнопки редактирования, но я не знаю, как получить данные редактирования. Мой текущий код выглядит list.htmlредактирование формы угловым способом

<table class="table table-striped table-bordered table-hover table-full-width" id="sample_1"> 
     <thead> 
      <th>Title</th> 
      <th>Description</th> 
      <th>Author</th> 
      <th>Action</th> 
     </thead> 
     <tbody> 
      <tr ng-repeat="post in blog | orderBy:'created_at':true"> 
      <td>{{post.title}}</td> 
      <td>{{post.description}}</td> 
      <td>{{post.author}}</td> 
      <td> 
       <a href="#/blog/edit/{{post._id}}" class="btn btn-default btn-sm">Edit</a> &nbsp; 
       <a href="#/blog/delete/{{post._id}}" class="btn btn-default btn-sm">Delete</a> 
      </td> 
      </tr> 
     </tbody> 
    </table> 

Так, нажав button, я навигационный к моему edit.html, который выглядит как

<form role="form" class="form-horizontal" ng-submit="editPost()"> 
    <div class="form-group"> 
     <label class="col-sm-2 control-label" for="form-field-1"> 
     Title 
     </label> 
     <div class="col-sm-9"> 
     <input type="text" placeholder="Post title" id="form-field-1" class="form-control" ng-model="blog.title" value="{{blog.title}}"> 
     </div> 
    </div> 
    <div class="form-group"> 
     <label class="col-sm-2 control-label" for="form-field-2"> 
     Description 
     </label> 
     <div class="col-sm-9"> 
     <textarea placeholder="description" rows="5" id="form-field-2" class="form-control" ng-model="blog.description"></textarea> 
     </div> 
    </div> 
    <div class="form-group"> 
     <label class="col-sm-2 control-label" for="form-field-1"> 
     Author 
     </label> 
     <div class="col-sm-9"> 
     <input type="text" placeholder="Author" id="form-field-1" class="form-control" ng-model="blog.author"> 
     </div> 
    </div> 
    <div class="form-group"> 
     <div class="col-sm-9 col-sm-offset-2"> 
     <button type="submit" class="btn btn-primary btn-sm">Update</button> 
     </div> 
    </div> 
</form> 

теперь у меня есть сделать restful апи с помощью nodejs, которые я проверить с помощью postman и его рабочий тон. Мой api URL, как

localhost:3000/api/posts/id 

То, что я хочу добиться сейчас, я хочу, чтобы получить данные из db по нажатию на кнопку редактирования. мой текущий js декларация

var meanApp = angular.module('meanApp', ['ui.router', 'ngMessages', 'ngResource']); 

meanApp.config(function($stateProvider, $urlRouterProvider) { 
    $urlRouterProvider.otherwise('/'); 
    $stateProvider 
     .state('common', { 
      abstract: true, 
      views: { 
       '': { 
        templateUrl: 'shared/common.html' 
       }, 
       '[email protected]': { 
        templateUrl: 'shared/header.html' 
       }, 
       '[email protected]': { 
        templateUrl: 'shared/sidebar.html' 
       }, 
       '[email protected]': { 
        templateUrl: 'shared/script-init.html' 
       }, 
      }, 
     }) 

    .state('blogEdit', { 
     url: '/blog/edit/{id}', 
     parent: 'common', 
     views: { 
      '': { 
       templateUrl: 'components/blog/edit.html' 
      }, 
     }, 
     controller: 'postEditController' 
    }) 

}); 

meanApp.controller('postEditController', function(postService, $stateParams, $scope, $http, $location) { 
    //code to get the data from db using the id of the post 

}); 

Любая помощь будет оценена.

+0

сделать AJAX позвонить и получить данные человек – SakthiSureshAnand

ответ

0

Если вы пытаетесь достичь данных из БД с помощью nodejs.I дал свой рабочий пример nodejs (код подключения DB),

var pool = require('../config/database'); 
    module.exports.findCampaign = function(req, res) { 

    //You created properties file and access or using direct query like this 
    //var findCampaign = select * from campaigns where campaign_sno = ? 

// Accessing properties file   
    var findCampaign = campaignSql.get('main.findCampaign');  
    pool.query(findCampaign, function(err, rows) { 
     if (err) 
     throw err; 
     // You follow your coding standard here i did example or reference purpose i wrote like this 
     console.log('Data received from Db:\n'); 
     console.log(rows); 
    }); 
    }; 
0

в файле конфигурации, где вы маршрутизации с ui.router ... .в состояние редактирования блога:

.state('blogEdit', { 
    url: '/blog/edit/:id', 
    parent: 'common', 
    views: { 
     '': { 
      templateUrl: 'components/blog/edit.html' 
     }, 
    }, 
    controller: 'postEditController' 
}) 

этот

:id
будет рассматриваться в качестве параметров URL. теперь в контроллере:

meanApp.controller('postEditController', function(postService, $stateParams, $scope, $http, $location) { 
    postService.getPostById(parseInt($stateParams.id, 10)); 
}); 

здесь, если ваш идентификатор содержит символ ..... вам, возможно, не придется разбираться. Теперь запросите свой Db в сервисе ..... поскольку у вас теперь есть параметр .....

$http({ 
    url: 'your/path/to/server', 
    method: "GET", 
    params: {user_id: idFromServiceArgument} 
}); 
Смежные вопросы