Listing 1: Abschicken und Verarbeiten des Requests

prepareRequest: function() {
  var textField = M.ViewManager.getView('mainPage', 'searchTextInput');
  M.LoaderView.show('Tweets werden abgerufen...');
  var request = M.Request.init({
    url: '/twitter/search.json?q=' + textField.value + '&rpp=10',
    isJSON: YES,
    callbacks: {
      success: {
        target: this,
        action: 'handleResponse'
      },
      error: {
        action: function() {
            M.LoaderView.hide();
            M.DialogView.alert({
              title: 'Hinweis',
              message: 'Leider konnten keine Tweets abgerufen werden. Bitte prfe die Internetverbindung.'
            });
        }
      }
    }
  });
  request.send();
}


Listing 2: Definition einer Liste

list: M.ListView.design({
  contentBinding: {
    target: Twitter.ApplicationController,
    property: 'tweets'
  },
  listItemTemplateView: Twitter.ListTemplate
})


Listing 3: Definition eines Listenelement-Templates

Twitter.ListTemplate = M.ListItemView.design({
  childViews: 'image1 label1 label2 text',
  image1: M.ImageView.design({
      valuePattern: '<%= profile_image_url %>'
  }),
  label1 : M.LabelView.design({
      valuePattern: '<%= from_user %>'
  }),
  label2 : M.LabelView.design({
    computedValue: {
      valuePattern: '<%= created_at %>',
      operation: function(v) {
        var date = M.Date.create(v);
        return date.format('mm/dd/yyyy HH:MM');
      }
    }
  }),
  text : M.LabelView.design({
    valuePattern: '<%= text %>'
  })
});
