Ergebnis 1 bis 1 von 1
  1. #1
    subsonnic ist offline Jungspund
    registriert
    06-09-2012
    Beiträge
    13

    Angular + Rails und select-tags

    Hallo nochmal,

    ich schaff es einfach nicht in einer select-Liste innerhalb einer Tabelle innerhalb einer ng-repeat directive die verschachtelte resource als voreinstellung in der drop-down liste einzutragen. Auswählen und speichern funktioniert, abe ich möchte bei vorhandenen Werten schon gerne den Wert als selektiert drin stehen haben.

    Hier das template
    HTML-Code:
    <tr ng-repeat="ticket in tickets">
    						<td>
    							<button class="btn btn-default" ng-click="update(ticket)" ><span class="glyphicon glyphicon-floppy-save"></span>Save</button>
    							<button class="btn btn-default" confirm-message="Are you sure?" confirm-click="delete(ticket)" ><span class="glyphicon glyphicon-remove"></span>Delete</button>
    							<button class="btn btn-default" ng-click="edit(ticket)" ><span class="glyphicon glyphicon-edit"></span>Edit</button>
    						</td>
    						<td>{{ticket.referenceNo}}</td>
    						<td>
    							<select class="form-control" ng-model="ticket.user" ng-options="user.username for user in users">
    							</select>
    						</td>
    						<td>{{ticket.customerName}} [<a ng-href="mailto:{{ticket.customerEmail}}" target="_blank">{{ticket.customerEmail}}</a>]</td>
    						<td>{{ticket.subject}}</td>
    						<td>{{ticket.message}}</td>
    						<td><select class="form-control" ng-model="ticket.status" ng-options="status for (status,id) in statuses"></td>
    					</tr>


    Und hier der Controller
    HTML-Code:
    angular.module('OnApp').controller("TicketCtrl", [ '$scope', '$location', '$window', 'Ticket', 'User', 'StatusList', 'ngDialog', ($scope, $location, $window, Ticket, User, StatusList, ngDialog)->
     
      $scope.message=""
      $scope.current_ticket=$window.current_ticket
      $scope.tickets=[]
      $scope.users=[]
      $scope.statuses=[]
      $scope.action=$window.ticket_action
      
      console.log($window.current_ticket)
      console.log($scope.current_ticket)
      
      Ticket.query().then (tickets) ->
        $scope.tickets = tickets 
        
      User.query().then (users) ->
        $scope.users = users    
        
      StatusList.query().then (statuses) ->
        $scope.statuses = statuses    
        
       
      $scope.create = (current_ticket) -> 
          result = new Ticket(current_ticket).create()
          console.log(result)
          if result?
            $scope.message="Ticket created successfull. An confirmation email was send to your email address."
            $scope.current_ticket=null
          else
            console.log("Error during ticket creation!")
            $scope.message="Ticket creation failed! Try again."
            $scope.current_ticket=null
            
            
      $scope.delete = (current_ticket) ->  current_ticket.delete().then (result) ->
        if result
          $scope.tickets.splice $scope.tickets.indexOf(current_ticket), 1
          ngDialog.open({ 
            template: 'dialogs/error.html',
            scope: $scope,
            className: 'ngdialog-theme-default',
            
          })
          
      $scope.update = (current_ticket) -> current_ticket.update().then (result) ->
        if result
          $scope.message="Ticket Updated."
            
      $scope.edit = (current_ticket) -> 
        $location.path('/tickets/'+current_ticket.id) 
        $window.current_ticket=current_ticket
        $window.ticket_action="edit"
    ])

    Und hier noch die Services
    HTML-Code:
    angular.module('OnApp').factory('Ticket', ['railsResourceFactory', 'railsSerializer', 'User', (railsResourceFactory, railsSerializer, User) ->
      resource = railsResourceFactory
        url: '/api/tickets',
        name: 'ticket',
        serializer: railsSerializer -> 
          @resource 'user', 'User'
      
      resource::user = -> User.get @userId         
        
      return resource      
    ])
    
    angular.module('OnApp').factory('User', ['railsResourceFactory', (railsResourceFactory) ->
        return railsResourceFactory
            url: '/api/users',
            name: 'user' 
    ])

    Und zum beseren Verständnis noch ein bischen Ruby
    Code:
    create_table "tickets", force: true do |t|
        t.string   "status"
        t.text     "message"
        t.string   "subject"
        t.integer  "user_id"
        t.string   "customer_name"
        t.string   "customer_email"
        t.string   "reference_no"
        t.datetime "created_at"
        t.datetime "updated_at"
      end
    
      create_table "users", force: true do |t|
        t.string   "username"
        t.string   "password"
        t.datetime "created_at"
        t.datetime "updated_at"
      end


    Das sollte doch eigentliuch kein Problem darstellen. Ist ja etwas selbstverständliches (dachte ich)


    Danke für jede Hilfe

    David
    Geändert von mikdoe (31-10-2014 um 12:34 Uhr) Grund: INLINE -> HTML weil INLINE nur für Einzeiler taugt

Ähnliche Themen

  1. Angular Daten aus View aktuallisieren
    Von Flystyler im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 30-06-2014, 18:07
  2. leere option-tags in dynamisch erzeugtem select-feld
    Von erlprinz im Forum JavaScript
    Antworten: 14
    Letzter Beitrag: 24-10-2010, 23:03
  3. Antworten: 4
    Letzter Beitrag: 01-10-2008, 14:28
  4. Style eines <select> tags
    Von ancient.shadow im Forum CSS und (X)HTML
    Antworten: 4
    Letzter Beitrag: 27-10-2005, 19:17
  5. LAYERs / DIVs und <select>-Tags
    Von PHP-B-GINNA im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 26-08-2002, 19:14

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •