Можно определить, в каком свойстве scope должно быть указано атрибуты, определенные в директиве? например:Как определить, где привязать изолированные свойства области в Angularjs?
angular.module("myMod",[]).
directive("myDir", {
restrict: "E",
scope: {
prop1: "@myProp1",
prop2: "@myProp2",
},
controller: function($scope){
//Here I have prop1 and prop2 assigned to $scope
$scope.prop1;
$scope.prop2;
},
});
Но то, что я хочу что-то вроде:
angular.module("myMod",[]).
directive("myDir", {
restrict: "E",
scope: {
config: { prop1: "@myProp1" }, //This is invalid
prop2: "@myProp2",
},
controller: function($scope){
//And here, $scope.config.prop1 refers to myProp1
$scope.config.prop1;
$scope.prop2;
},
});
Я нашел частичное решение: с помощью controllerAs и bindToController, controllerAs определяет псевдоним для обозначения контроллера и bindToController связывает изолированный объем свойства в контроллер, то у меня есть:
$scope.alias.prop1
$scope.alias.prop2
Но я не хочу, чтобы связать все свойства контроллера, потому что не нужно т шапка. Я хочу привязать некоторые из них к свойству области видимости, а остальное - к другому свойству или непосредственно к области.
Почему я пытаюсь это сделать? Потому что я хочу назначить: $ scope.config = newConfig;
Это проще, чем:
$scope.prop1 = newProp1;
$scope.prop2 = newProp2;
это же делать: объем: { конфигурации: {param1: «@ myParam1»} } и не действует – Ferchi