私は非常に角度が新しく、ここで多くのスレッドを読んでこのトピックをGoogleで検索しましたが、明確な答えは得られません。私が実際に達成しようとしているのは、です。私はコントローラAを持っていると仮定します。これはデータの実際のソースです。私はそれをHTMLにバインドすることでそれを1つのディレクティブに渡しました。このディレクティブから、私は別のコントローラにソースを瞬時に取得しています。 コントローラAのデータが変更されたときに、コントローラのデータをどこで変更できるかを調べる必要があります。AngularJSでスコープが変更されたときにコントローラ内のデータを更新する
コントローラーA
angular.module('page.leadAndOpportunity.ctrl', []).controller('LeadAndOpportunityController', ['$scope', '$rootScope', '$timeout', function ($scope, $rootScope, $timeout, leadAndOpportunityService) {
$scope.selectDataSource = function (condition) {
var dataSource = [];
var dataSource = $scope.leadsDataSource.filter(function (item) {
return item.typeName === condition;
});
$scope.leadsDataSource = [];
$scope.leadsDataSource = dataSource;
console.log($scope.leadsDataSource);
}
}]);
HTML
<ng-senab-grid datasource="{{ leadsDataSource }}" defaultdata="{{defaultColumns}}" skipdata="{{ skipColumns }}" enablepersonalisation="true"></ng-senab-grid>
指令
angular.module('page.gridView.drct', []).directive("ngSenabGrid", ["$rootScope", function ($rootScope) {
return {
restrict: "E",
templateUrl: "pages/gridView/page.gridView.tpl.html",
scope: {
enablePersonalisation: "@enablepersonalisation",
datasource: "@datasource",
defaultdata: "@defaultdata",
skipdata: "@skipdata"
},
}
}]
);
コントローラーB
var _datasource = JSON.parse($scope.datasource);
//rest the data follows
ので$scope.leadsDataSource
がコントローラーAで変更を取得するときに、その後、
var _datasource = JSON.parse($scope.datasource);
も
を変更を取得する必要があり、私はそれが可能であれば知りませんか否か。しかし、私は、これは指令uはの値を取得したい場合は、中括弧
<ng-senab-grid datasource="leadsDataSource" defaultdata="defaultColumns" skipdata="skipColumns" enablepersonalisation="true"></ng-senab-grid>
を追加する必要はありませんですvariable.sinceの中括弧を削除事前
については、以下のサンプルフィドル例をチェックし、いずれかの '<'または '='オブジェクトのタイプを保存するようにスコープ変数を単離しました'@'を使うと、すべてのデータがストリング化されます。 –
のようですか?あなたが私を説明することができれば...私はすでに言っている、私は角度のものに新しいです –
あなたはどのように指示をコントローラからコントローラに渡すのですか? – gaurav5430