2017-03-03 21 views
0

我想修改項目ngImgCrop(https://github.com/alexk111/ngImgCrop)允許在同一頁面裁剪多個圖像,但我不知道需要多少圖像,這是動態創建的。所以,我需要關聯到動態值的'圖像'字段,同時我將這個變量放在我的範圍內。問題是這個標籤沒有評估角碼。AngularJS表達式不工作<img-crop>

<div class="cropArea" id="{{'person'+person.Id}}"> 
    <img-crop image="{{'person'+person.Id}}" result-image="myCroppedImage"></img-crop> 
</div> 

即使他們有相同的代碼,當頁面加載的HTML代碼所示:

<div class="cropArea" id="person12345"> 
    <img-crop image="{{'person'+person.Id}}" result-image="myCroppedImage"></img-crop> 
</div> 

在我的範圍,因爲開始時創建的變量$ scope.person12345,但它是沒有這部分就不可能做出約束力。 我能做什麼?

注: 在我的init()函數創建所有的變量:

angular.forEach(persons, function (person, index) {   
    $scope['person'+person.Id]=''; 
}); 

我居然可以看到變量$ scope.person12345加載頁面時。在任何情況下,爲什麼表達式爲div而不是img-crop?

+0

根據文檔,圖像應該是一個可分配的角度表達式。告訴我們你的控制器代碼。假設你有一個人的數組,而不是定義$ scope.person12345,定義'$ scope.persons [i] .image',並在你的ng-repeat迭代人中使用'image =「person.image」 '。 –

+0

通過編輯發佈問題中的所有相關代碼。不在評論那裏是不可讀的。 –

回答

0

請把你的表情作爲一個函數在Controller中執行。字符串(附加字符串)將通過下面的函數返回。

<div class="cropArea" id="{{'person'+person.Id}}"> 
     <img-crop image="getImagePath(person.Id)" result-image="myCroppedImage"></img-crop> 
    </div> 

Controller like below: 

    $scope.getImagePath = function(id){return 'person'+id+'.png';}; 

一些怎麼沒有在image指令可用的解析器,這就是爲什麼你需要通過一個控制器來給解析的表達。

+0

我做到了。但是,即使當我看到它進入的功能和返回值正確,而我調試,在最後的HTML是: '' 我沒把巴紐,因爲這是不是路徑到圖像,這是綁定到這個範圍的變量的名稱。 – btyroque

+0

嘗試返回形成的變量的值。 '$ scope.getImagePath = function(id){return $ scope ['person'+ id];};' –

+0

我試過了,沒有什麼,仍然是同樣的行爲。 – btyroque