はじめに、私は AngularJS と CodeIgniter は初めてだと言っておきましょう。シングル ページ アプリを作成しようとしています。中央にはニュース記事が表示されます。側面には新しいストーリーを投稿するためのフォームがあります。DB からストーリーが正常に表示されるようになりました。しかし、サイドのフォームから新規ストーリーを作成しようとすると、DBに0が入ります。モデルの機能に問題があると思います。そして、それはおそらく、MVC 間で渡される情報が正しくエンコードされていないことと同じくらい基本的なことです。
index.php
<div class="span2" ng-controller="NewStoryCtrl">
<h4>New Story</h4>
<form name="newStory">
<label for="title">Title: </label>
<input type="text" name ="title" ng-model="news.title" required>
<label for="text">Text: </label>
<textarea type="text" name="text" ng-model="news.text"required></textarea>
<button ng-click="createNews()">Submit</button>
</form>
controller.js
function NewStoryCtrl($scope, $http) {
$scope.news = {title:$scope.title, text:$scope.text};
$scope.createNews = function(){
$http.post('/ci/index.php/news/create/',$scope.news);
};}
news.php (コントローラー)
public function create() {
$this->news_model->set_news();
}
news_model.php (モデル)
public function set_news() {
$this->load->helper('url');
$slug = url_title($this->input->post('title'), 'dash', TRUE);
$data = array(
'title' => $this->input->post('title'),
'slug' => $slug,
'time' => time(),
'text' => $this->input->post('text')
);
return $this->db->insert('news', $data);
}
モデル内のものは、最初の CI ニュース チュートリアルの残り物です。そのため、エラーはここにあると思います。controllers.js からモデルに情報を渡す最良の方法は何ですか?