আমি src
একটি চলক থেকে একটি iframe এর বৈশিষ্ট্য সেট করার চেষ্টা করছি এবং আমি এটি কাজ করতে পারি না ...
মার্কআপ:
<div class="col-xs-12" ng-controller="AppCtrl">
<ul class="">
<li ng-repeat="project in projects">
<a ng-click="setProject(project.id)" href="">{{project.url}}</a>
</li>
</ul>
<iframe ng-src="{{trustSrc(currentProject.url)}}">
Something wrong...
</iframe>
</div>
কন্ট্রোলার / app.js:
function AppCtrl ($scope) {
$scope.projects = {
1 : {
"id" : 1,
"name" : "Mela Sarkar",
"url" : "http://blabla.com",
"description" : "A professional portfolio site for McGill University professor Mela Sarkar."
},
2 : {
"id" : 2,
"name" : "Good Watching",
"url" : "http://goodwatching.com",
"description" : "Weekend experiment to help my mom decide what to watch."
}
};
$scope.setProject = function (id) {
$scope.currentProject = $scope.projects[id];
console.log( $scope.currentProject );
}
}
এই কোড সহ, iframe এর src
গুণাবলী মধ্যে কিছুই .োকানো হয় । এটা ঠিক ফাঁকা।
আপডেট 1:
আমি $sce
AppCtrl এবং $ sce.trustUrl () এ এখন নির্ভরতা ইনজেকশনের ত্রুটি ছুঁড়ে না ফেলে কাজ করে। তবে এটি প্রত্যাবর্তন করে TrustedValueHolderType
যা আসল ইউআরএল inোকানোর জন্য কীভাবে ব্যবহার করব তা আমি নিশ্চিত নই। একই বৈশিষ্ট্যটি আমি ফিরিয়ে আছি $ sce.trustUrl () ব্যবহার করে ইন্টারপুলেশন ব্রেসের ভিতরে অ্যাট্রিবিউটে src="{{trustUrl(currentProjectUrl))}}"
বা যদি আমি কন্ট্রোলারের ভিতরে এটি করি যদি বর্তমানপ্রজেক্ট ইউরেলের মান নির্ধারণ করি। এমনকি আমি উভয় সঙ্গে এটি চেষ্টা করেছিলাম।
আপডেট 2: আমি .toString () ব্যবহার করে বিশ্বস্ত ইউআরএলহোল্ডার থেকে ইউআরএলটি কীভাবে ফিরিয়ে আনতে পারি তা বুঝতে পেরেছি, কিন্তু যখন আমি এটি করি, এটি সিসিআর বৈশিষ্ট্যটিতে পাস করার চেষ্টা করার পরে এটি সুরক্ষা সতর্কতা নিক্ষেপ করে।
আপডেট 3: এটি যদি আমি কন্ট্রোলারে বিশ্বাসের রিসোর্স ইউআরএল () ব্যবহার করি এবং এটি এনজি-এসসিআর অ্যাট্রিবিউটের অভ্যন্তরে ব্যবহৃত একটি ভেরিয়েবলের কাছে পৌঁছে দিই তবে এটি কাজ করে:
$scope.setProject = function (id) {
$scope.currentProject = $scope.projects[id];
$scope.currentProjectUrl = $sce.trustAsResourceUrl($scope.currentProject.url);
console.log( $scope.currentProject );
console.log( $scope.currentProjectUrl );
}
আমার সমস্যা এটির দ্বারা সমাধান হয়ে গেছে বলে মনে হচ্ছে, যদিও আমি কেন তা নিশ্চিত তা নয়।