2015-05-19 49 views
0


您好, 我正在使用angularJs和bootstrap來開發Web應用程序。 我在模態窗口中使用select時遇到了問題。 這是鏈接到一個plunker文件的工作。
http://plnkr.co/edit/mcl2BMQhWRvRffvbw2nX?p=preview

這只是給你一個我的問題的想法。我不能把真正的代碼放在這裏,因爲這是一個保密的大學項目。而且我無法制作一個類似的代碼,而這種代碼並不適用。

Angularjs Select在模式窗口中不起作用

angular.module('plunker', ['ui.bootstrap']); 
 
var ModalDemoCtrl = function ($scope, $modal, $log) { 
 

 
    $scope.items = ["item1","item2","item3"]; 
 
    
 
    $scope.open = function() { 
 
    var modalInstance = $modal.open({ 
 
     templateUrl: 'myModalContent.html', 
 
     controller: ModalInstanceCtrl, 
 
     resolve: { 
 
      items: function() { 
 
       return $scope.items; 
 
      } 
 
      } 
 
    }); 
 
    }; 
 
    
 
}; 
 

 
var ModalInstanceCtrl = function ($scope, $modalInstance, items) { 
 
    $scope.items = items; 
 
    
 
    $scope.ok = function() { 
 
    $modalInstance.close($scope.items); 
 
    }; 
 

 
    $scope.cancel = function() { 
 
    $modalInstance.dismiss('cancel'); 
 
    }; 
 
    
 
};
angular.module('plunker', ['ui.bootstrap']); 
 
var ModalDemoCtrl = function($scope, $modal, $log) { 
 

 
    $scope.items = ["item1", "item2", "item3"]; 
 

 
    $scope.open = function() { 
 
    var modalInstance = $modal.open({ 
 
     templateUrl: 'myModalContent.html', 
 
     controller: ModalInstanceCtrl, 
 
     resolve: { 
 
     items: function() { 
 
      return $scope.items; 
 
     } 
 
     } 
 
    }); 
 
    }; 
 

 
}; 
 

 
var ModalInstanceCtrl = function($scope, $modalInstance, items) { 
 
    $scope.items = items; 
 

 
    $scope.ok = function() { 
 
    $modalInstance.close($scope.items); 
 
    }; 
 

 
    $scope.cancel = function() { 
 
    $modalInstance.dismiss('cancel'); 
 
    }; 
 

 
};

所以我的問題是:在選擇標籤(視圖),我可以看到所有的選擇,但我不能選擇它們。
我試圖把一個「。」在我的ng模型引用中,我嘗試使用父範圍。 (我認爲我對範圍很好,我閱讀了所有關於它的文檔,我在論壇上閱讀了幾個主題,並嘗試了很多東西)。
所以,我敢肯定,問題不是直接來自範圍。 (此外,我不希望父範圍被觸發,所以它應該以正常方式工作)。

問題是,如果沒有ng模型,ng-options在<select>中無法運行。所以我想我的$scope.selectedItem是在某個地方創建的。但之後,選擇被阻止,我不能選擇任何東西。
如果我在控制器中爲我的$scope.selectedItem添加了默認值,則會更新選擇標記並顯示默認值被選中。但我仍然無法選擇其他任何東西。

你知道它從哪裏來的嗎?

謝謝你提前和對不起我的英文:)

+0

你是什麼意思**不能選擇任何東西**?是選擇封鎖還是隻是不接受你的改變? – Michael

+0

選擇被阻止。我可以看到不同的選項,但是當我通過點擊選擇一個選項時,什麼都不會發生 – Mtoypc

+0

我發現了一些非常奇怪的東西。我有一個和firefox一起工作的朋友(和我一樣)。在他的電腦上,他可以正常使用選擇。他可以使用完全相同的代碼來選擇任何值。我們有相同版本的Firefox。唯一不同的是操作系統。他使用Windows 8,我使用的是Ubuntu 14.04。這個問題有可能是由此產生的嗎? – Mtoypc

回答

0

我找到了解決我的問題。通過引導程序,我們可以創建模態窗口,而無需在JavaScript文件中聲明任何內容。爲此,我們必須在使用它的html文件中包含模態窗口。
這裏是一個展示的解決方案爲例(它不是比上面同樣的例子):

此代碼打開模式:

<div ng-include="getItemTemplate('modalVariables')"></div> 
<button type="button" class="btn btn-primary btn-section" data-toggle="modal" data-target="#variablesModal">Variables</button> 


而在模式有:

<div class="modal fade" id="variablesModal" role="dialog" aria-labelledby="modalTitle" aria-hidden="true" tabindex="-1"> 
<!-- content of the modal window here --> 
</div> 


使用此代碼,模態內的選擇正確地爲我工作。但我仍然不知道爲什麼以前不工作。