我有这个Anuglar.js UI-Boostrap问题。我正在尝试使用ui-bootstrap设置自定义弹出模板。然而,每当页面加载,然后我弹出一个要求我再次输入我的凭据。它们在页面上没有错误,并且无法通过网络加载任何内容。如果我尝试登录它说它不正确,如果我取消它会让我退出我的应用程序。
我慢慢开始评论我添加的代码的不同部分,并发现当我注释掉ui-bootstrap属性时,它不再要求下面的凭据,下面的代码是ui-boostrap注释掉的。
<input type="text" @*typeahead-popup-template-url="customPopupTemplate"*@ typeahead-min-length="0" typeahead-show-hint="false" uib-typeahead="d as d.name for d in bds | filter:{name:$viewValue,isDeleted:false}" typeahead-on-select="getStuffs($item)" ng-model="item.bd" ng-required="true" />
下面的customPopupTemplate来自angulars网站(向下滚动到typeahead)
http://angular-ui.github.io/bootstrap/
我最初做了网站的逐字记录,但仍然弹出,所以我把部分额外的标记加载到页面上,我仍然得到相同的问题。我正在尝试显示自定义弹出窗口,但无法通过网站要求凭据。我在这里有点迷失,不知道该往哪里去。任何帮助将不胜感激。
<div class="col-md-12" id="customPopupTemplate">
<div class="custom-popup-wrapper"
ng-style="{top: position().top+'px', left: position().left+'px'}"
style="display: block;"
ng-show="isOpen() && !moveInProgress"
aria-hidden="{{!isOpen()}}"
>
<p class="message">select location from drop down.</p>
<ul class="dropdown-menu" role="listbox">
<li class="uib-typeahead-match" ng-repeat="match in matches track by $index" ng-class="{active: isActive($index) }"
image-checkbox ng-style="{'background-color':bgCol}" ng-mouseenter="selectActive($index)" ng-click="selectMatch($index)" role="option" id="{{::match.id}}">
<div uib-typeahead-match index="$index" match="match" query="query" ng-style="{background-color:match.color" template-url="templateUrl"></div>
</li>
</ul>
</div>
</div>
答案 0 :(得分:2)
在页面加载时提示输入这样的凭据通常是由Web服务器配置引起的。我的猜测是你在网站上启用了IIS和Windows身份验证,它需要你的本地Windows用户凭据。
尝试在IIS中禁用Windows身份验证和启用匿名,以查看是否获得相同的结果。
答案 1 :(得分:1)
假设您正在使用ASP.Net mvc,您可能需要添加一个存储customPopupTemplate
的web.config文件。首先,我建议重命名为
customPopupTemplate.cshtml
。然后,您需要在项目区域中添加web.config文件,这些文件位于这些模板文件所在的区域中。像这样:
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web.webPages.razor>
<appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>
<system.webServer>
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*.cshtml" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
<system.web>
<compilation>
<assemblies>
<add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=" />
</assemblies>
</compilation>
</system.web>
</configuration>
关键是system.webServer
中的此部分。它基本上允许应用程序提供.cshtml
个文件:
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*.cshtml" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>