Angularjs 当属性为';t在指令链接阶段可用
我有一个关于它的指令。在这个指令中,我想使用控制器作用域的属性。但是,当directives链接函数运行时,还没有设置此属性,因为它是在返回资源调用时设置的 当指令中的属性值从资源结果中可用时,如何使用该属性值 我现在有:Angularjs 当属性为';t在指令链接阶段可用,angularjs,angularjs-directive,angularjs-scope,Angularjs,Angularjs Directive,Angularjs Scope,我有一个关于它的指令。在这个指令中,我想使用控制器作用域的属性。但是,当directives链接函数运行时,还没有设置此属性,因为它是在返回资源调用时设置的 当指令中的属性值从资源结果中可用时,如何使用该属性值 我现在有: .directive('meImageUpload', ['$parse', '$compile', function ($parse, $compile) { return { restrict: 'A',
.directive('meImageUpload', ['$parse', '$compile', function ($parse, $compile) {
return {
restrict: 'A',
scope: {
imageUploadType: '=imageUploadType',
imageUploadId: '=imageUploadId'
},
及
但这会导致imageUploadId始终未定义。据我所知,您试图使用您的问题
imageUploadId
,但设置为延迟?这应该没有问题,因为与范围定义连接的属性是以两种方式绑定的。因此,您可以使用scope.$watch
功能
scope.$watch("imageUploadId", function (newId, oldId) {
// here you can use the parameter id newId or read the new one from the scope
doSomething($scope.imageUploadId);
}
如果值(
record.id
)在您的控制器范围内更改,它也会在指令中自动更新,因为您使用imageUploadId:'=imageUploadId'
连接了它们。在这种情况下,您也可以使用缩写imageUploadId:'='
,因为它们的名称相同。记录.Id是从资源加载的数据的一部分?
scope.$watch("imageUploadId", function (newId, oldId) {
// here you can use the parameter id newId or read the new one from the scope
doSomething($scope.imageUploadId);
}