2015-03-09 2 views
0

У меня есть быстрый вопрос. Я создал настраиваемый выпадающий HTML-элемент управления, который динамически захватывает «узлы» из базы данных. Я превратил это в тип данных Umbraco (v7), который можно использовать как свойство Umbraco в разделе admin.AngularJS Umbraco Save Node Issue

К сожалению, когда пользователь выбирает один из элементов и сохраняет его, он не сохраняет эту информацию надлежащим образом. Я решил, что это происходит потому, что, когда Umbraco пытается сохранить в БД, NodeId пуст. Мне нужно заполнить это, прежде чем мы сохраним данные. К сожалению, я не нашел простого способа сделать это.

Может ли кто-нибудь указать мне правильное направление? Заполнение NodeId до того, как я нажму модель на контроллер CS (который должен обновить SQL DB), должен работать ... или можно сделать angularJS, который подталкивает TWO-параметры и позволяет C# обрабатывать это?

У кого-нибудь есть идеи?

Вот Редактор HTML:

<select ng-controller="Dmns.DDLAllNodesController" data-ng-model="selectedOption"> 
     <option ng-repeat="gNode in galaxyNodes.data" value="{{gNode}}"> 
      {{gNode.KioskNodeId}} -- {{gNode.MachineName}} 
     </option> 
    </select> 

И вот AngularJS, где я хотел бы добавить Id узел Umbraco к модели перед отправкой на C#

 $scope.$on("formSubmitting", function() { 
      $scope.selectedOption({ 
       Id: $routeParams.Id // This does not update properly 
      }); 
      $scope.$apply(); 
      getAllNodesResource.save($scope.selectedOption); // Sends old data 
     }); 

И вот модель Я возвращаюсь, в случае, если это поможет:

[Serializable] 
    [DataContract] 
    public class KioskNode 
    { 
     [DataMember] 
     public int Id { get; set; } 

     [DataMember] 
     public int NodeId { get; set; } 

     [DataMember] 
     public int KioskNodeId { get; set; } 

     [DataMember] 
     public string MachineName { get; set; } 
    } 

ответ

0

Итак, я нашел причину, по которой он не был заселен правильно. Я не отделял объект от JSON, а это значит, что я не смог получить дочерние свойства.

Это фиксированная моя проблема:

var deJson = angular.fromJson(node); 

     return $http.post("/umbraco/backoffice/api/DDLNodes/PostSave", { 

      Id: 0, 

      NodeId: id, 

      KioskNodeId: deJson.KioskNodeId, 

      MachineName: deJson.MachineName 

     }); 

Это позволит мне передать переменные (обновлена) Мне нужно вернуться к BackOffice, чтобы сохранить его в БД.