我有一个导航下拉列表,我想根据工厂的值隐藏下拉列表中的一些选项。我正在根据工厂的值隐藏或显示的选项上使用 WebDriver driver;
driver=new FirefoxDriver();
String a=driver.findElement(By.id("")).getText();//Fetch id of first screen
driver.navigate().to("The second screen");
driver.findElement(By.id("")).sendKeys(a);//fetch id of second screen and put the value of the first screen
。
当我在没有工厂的情况下直接将其设置为false时,它可以工作,我在下拉列表中看不到这些选项。
这是我从工厂获取数据的方式:
ng-show
当我将上述内容直接设置为$scope.mstrClientLStatus=userDetailsFactory.getUserDetailsFromFactory().mstrClientLStatus;
console.log($scope.mstrClientLStatus)
//it is false but doesn't hide
时,隐藏了选项。
false
我$scope.mstrClientLStatus= false //works and the options are hidden
下一行中的console.log
,它是假的,但它仍会显示下拉列表中的选项。
html:
$scope.mstrClientLStatus
整个工厂代码:
<li ng-show="mstrClientLStatus"> //this is what I want to hide
答案 0 :(得分:2)
我的同事提出了这个建议,虽然它是一种解决办法,但它确实有效。我想:
if(userDetailsFactory.getUserDetailsFromFactory().mstrClientLStatus=="true"){
$scope.mstrClientLStatus= true;
}
答案 1 :(得分:0)
这非常奇怪,让你在控制器中编写代码,可能是一个摘要周期的问题,所有你需要把你的操作放在超时块中以使其在摘要周期中注册,
$timeout(function() {
$scope.mstrClientLStatus = userDetailsFactory.getUserDetailsFromFactory().mstrClientLStatus;
$scope.$apply()
})