我对角度很新,我在这里阅读了很多帖子并搜索了这个主题,但我无法得到明确的答案。我尝试做的是传递一个未设置的值,直到用户做出选择,此时我的控制器将调用异步调用并将结果分配给控制器中的值。我的指令控制器需要访问该值来执行其逻辑。
这是与我的相似的代码。
foreach(var strip in animationStrips)
{
//Display current strip
}
任何帮助将不胜感激。
答案 0 :(得分:0)
你很近:
您的标记应该类似于:
<div ng-controller="testCtrl">
<test-dir result-data="results"></test-dir>
</div>
app.controller('testCtrl', function($scope){
$scope.getData = function(){
//getDataFunc is a method in a Factory, which is not shown here
$scope.results = getDataFunc();
}
}
app.directive('testDir', function(){
return{
restrict: 'AE',
scope: {
resultData: '='
},
controller:['$scope', function($scope){
//I need to be able to access the $scope.results from the parent controller
//$scope.resultData will always reflect the value of results here
$scope.$watch('resultData', function(){
//called any time $scope.resultData changes
});
}
}
}
你实际上不需要双向绑定,所以我实际上就是这样做的:
app.directive('testDir', function(){
return{
restrict: 'AE',
scope: {
resultData: '&'
},
controller:['$scope', function($scope){
//I need to be able to access the $scope.results from the parent controller
//calling $scope.resultData() will always return the current value of the parent $scope.results
$scope.$watch('resultData()', function(){
//called any time $scope.resultData() changes
});
}
}
}
答案 1 :(得分:0)
使用value创建一个服务,并使用set / get方法存储getDataFunc()的结果,然后将该服务注入指令以获取对该值的访问权。