emberjs:Uncaught TypeError:无法读取属性' load'未定义的

时间:2014-05-12 14:10:51

标签: ember.js websocket store

我的ember应用程序出了问题,我试图将从服务器收到的数据加载到商店中,但是这给了我这个错误 “Uncaught TypeError:当我放

时,无法读取未定义的属性'load'
  DS.get('store').load(App.Post, data)
          console.log(data);

我也试过了:

 var store = DS.get('store');
store.push('post', data);

这是孔代码app.js:

    App = Ember.Application.create({
  LOG_TRANSITIONS: true

})
/******************************* Post Template **************************************/

//Define a route for the template "post"
App.Router.map(function() {
  this.route("post", { path: "/post" });

});

//Post Model
App.Post = DS.Model.extend({
     name: DS.attr('string' ),
     number: DS.attr('string')
});


App.PostRoute = Ember.Route.extend({
    model: function() {
        //return all elements in model
           var posts = this.modelFor('posts');
           var post = posts.get('firstObject');
        return App.Post.find();
    }
});

DS.SocketAdapterMixin = Ember.Mixin.create({
    uri: 'ws://localhost:8081/',
    init: function(){
        this.ws = new WebSocket(this.uri);

        // callbacks
        this.ws.onopen = function() {
          console.log('Connection established /all');
        };
        this.ws.onclone = function() {
          console.log('Connection closed /' + 'all');
        };
        this.ws.onmessage = function(data) {

         DS.get('adapter').load(App.Post, data)
          console.log(data);


        };

        this._super();
    },

    initialize: function() {
        console.log('SocketAdapterMixin::initialize');
        this._super();
  }
});


DS.SocketAdapter = DS.FixtureAdapter.extend(DS.SocketAdapterMixin, {
  init: function() {
    this._super();
    console.log('SocketAdapter');
  }

});

//App.ApplicationAdapter = DS.SocketAdapter;

// Use the adapter in the store

App.Store = DS.Store.extend({
  revision: 11,
  adapter: DS.SocketAdapter.create({})
});

的index.html:

   <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
    <title>Ember.js Example Application</title>

   <script src="js/libs/jquery-1.10.2.js"></script>
   <script src="js/libs/handlebars-1.1.2.js"></script>
   <script src="js/libs/ember-1.5.1.js"></script>
   <script src="js/libs/Ember_Data.js"></script>
   <script src="js/application.js"></script>
   <script src="js/router.js"></script>
   <script src="js/models/model.js"></script>

</head>
<body>
<h1>Bonjour </h1>


<script type="text/x-handlebars">
    Hello, {{firstName}} {{lastName}}<br/>

    <nav>
  {{#link-to 'post'}}Post{{/link-to}}
  </nav>
<!--
<div id="sse">
   <a href="javascript:WebSocketTest()">Run WebSocket</a>
</div>
-->
     <div>
      {{outlet}}
    </div>

</script>


<!--
<script type="text/javascript">
function WebSocketTest()
{
  if ("WebSocket" in window)
  {
     alert("WebSocket is supported by your Browser!");
     // Let us open a web socket
     var ws = new WebSocket("ws://localhost:8081");
     ws.onopen = function()
     {
        // Web Socket is connected, send data using send()

        ws.send("Message to send");
        alert("Message is sent...");
     };
     ws.onmessage = function (evt)
     {
        var received_msg = evt.data;
        alert(received_msg);
     };


   //  ws.onclose = function()
    // {
        // websocket is closed.
      //  alert("Connection is closed...");
    // };
  }
  else
  {
     // The browser doesn't support WebSocket
     alert("WebSocket NOT supported by your Browser!");
  }
}
</script>
-->

<script type="text/x-handlebars" data-template-name="index">
    <h2>My Wrappers</h2>
    <ul>
    {{#each post in model}}
        <li>{{post.number}}</li>

    {{/each}}
    </ul>
  </script></p>


  <script type="text/x-handlebars" data-template-name="post">
     <h2>My Post</h2>
    <ul>
        <li> Zied</li>
        <li> Farah</li>
    </ul>
  </script>


<script type="text/javascript">

</script>


</head>
<body>
</body>
</html>

0 个答案:

没有答案