Par exemple, j'ai un paramètre dans le contrôleur principal : $scope.datas
Ensuite, j'ai ici une directive qui demande des données sur le contrôleur accusé et souhaite ensuite les attribuer au $scope.datas du contrôleur principal.
Comment réussir ?
Par exemple, commande :
app.directive('profitSearch', function () {
return {
restrict: 'AE',
scope: {
datas: "="
},
templateUrl: "/templates/profitSearch.jsp",
controller: function ($scope, $http) {
$http({
url: 'doSearch.req',
method: 'POST',
data: $scope.searchObject
}).success(function (response, header, config, status) {
$scope.datas = response.content;
}).error(function (response, header, config, status) {
});
}
La commande s'applique directement sur la page :
<profit-search></profit-search>
Mais cette affectation est fausse :
$compile:nonassign
Comment le casser ? N'ai-je pas utilisé la liaison bidirectionnelle ci-dessus ?
Il n'y a aucune affectation lorsque vous l'utilisez dans la commande. Essayez de le remplacer par ceci.
Ou attribuez une valeur à la commande
https://docs.angularjs.org/error/$compile/nonassign
Avez-vous besoin d'écrire des instructions ? Allez! Non seulement cela fait perdre du temps en écrivant des instructions de manière aléatoire, mais les performances ne seront pas meilleures. Écrire une requête directement dans le service devrait résoudre le problème.