2015-06-23 3 views
1

У меня есть несколько директив, которые будут создавать разные объекты, но каждый из этих объектов будет обладать множеством одинаковых свойств, поэтому я действительно хочу иметь базовый объект, на который они могут наследовать. Как мне это сделать? Есть ли способ создать объект, чтобы любая директива имела доступ к нему, а затем могла просто наследовать его, когда директивы сами создают новые объекты?AngularJS: Наследование объектов

app.directive('addtext', function ($http) { 
    return { 
     restrict: 'A', 
     link: function (scope, element, attr, model) { 

      element.on('click', function (e) {  
       var testObject = { 
       Id: '1', 
       value: 1, 
       inputType: 'textarea', 
       label: 'Question', 
       required: "false", 
       placeholder: 'Placeholder', 
       helpMessage: null, 
       textAreaSize: 5 
      } 
     }); 
    } 
}; 
}); 

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

+0

IMO создайте фабрику, которая является моделью, которую вы вводите в каждую директиву. – ajmajmajma

+0

Я не слышал другого способа сделать это отдельно от того, что говорит @ajmajmajma. Поэтому я согласен с тем, что спасибо –

+0

OK. Я отдам это так. – user3407039

ответ

0

Таким образом, вы можете установить услугу между всем, где вы в основном просто положить ваши данные в одном месте

.service('mySharedService', [ 
     '$q', 
     function($q) { 

      this.id = { 
      get value() { 
       return this.id; 
      }, 
      set value(id) { 
       this.id = id; 
      } 
      }; 
     } 
]); 

Так что это просто быстрое доказательство концепции, но идея вы инъекционная, что в каждый, и делать или устанавливать на все, что вам нужно, и он будет использоваться внутри этой службы между всеми ними.

Смежные вопросы