我試圖訪問我的指令中的$ scope.photoRes中的值,但截至目前,該指令中的console.log(scope.photoRes)僅顯示一個空對象。從控制檯 輸出:無法訪問指令中的範圍屬性
Object {fileName: "db372ec33603208781eb6fbf9789c816a4ab27d2.jpg", filePath: "C:\wamp\www\skittlize\photo_assets\uploads\db372ec33603208781eb6fbf9789c816a4ab27d2.jpg"} SkittlesCtrl.js:17
Object {} SkittlesCtrl.js:37
'use strict';
angular.module('skittlesApp')
.controller('SkittlesCtrl', function ($scope, $location){
$scope.photoRes = {};
$scope.dropzoneConfig = {
'options': { // passed into the Dropzone constructor
'url': 'photo_assets/save2.php'
},
'eventHandlers': {
'sending': function (file, xhr, formData) {
},
'success': function (file, response) {
$scope.$apply(function() {
$scope.photoRes = JSON.parse(file.xhr.getResponseHeader("photoInfo"));
$location.path('/uploader')
console.log($scope.photoRes);
});
}
}
};
})
.directive('dropzone', function() {
return function (scope, element, attrs) {
var config, dropzone;
config = scope[attrs.dropzone];
dropzone = new Dropzone(element[0], config.options);
_.each(config.eventHandlers, function (handler, event) {
dropzone.on(event, handler);
});
};
})
.directive('imgSwitch', ['PhotoServ', function (PhotoServ) {
function link(scope, element, attrs) {
scope.$watch('photoRes', function (newVal) {
if (newVal) {
console.log(scope.photoRes);
var cropper = new CROP();
cropper.init('.selfie-container');
cropper.loadImg('/uploads/'+scope.photoRes.fileName);
$('.cropButton').on('click', function() {
PhotoServ.skittlize('/uploads/'+scope.photoRes.fileName);
});
}
});
};
return {
link: link
}
}]);
會出現這種情況,因爲我在父範圍內變化不登記?
看來這只是因爲你沒有把東西分配給指令的範圍。 – EnigmaRM
你如何在html中使用指令? – Yanis
@YanisT,你問的是一個新問題嗎?你應該把它發佈,而不是作爲一個評論捎帶別人的問題。 您也可以轉到文檔或其他Angular教程來獲得解釋。 – EnigmaRM