繁体   English   中英

角范围变量可在html页面上使用,但不能在控制器上使用?

[英]Angular scope variable available on html page but not controller?

我想知道是否有人可以帮助我创建一个新指令,以便在从WebServer加载数据时过滤下拉列表。 一切正常,我可以使用{{ myValue }}将值写入HTML页面,甚至可以在输入上使用ng-model ,它返回值。

但是由于某种原因,如果我尝试通过控制器访问变量$scope.myValueundefined

我已经创建了一个插件(不从webServer加载数据,而是加载基本列表值),但这似乎可行,而我的项目却不起作用,因为从项目中复制了它,所以我没有得到! 。

如果有人有任何想法,我将不胜感激。

柱塞

在我的页面上

<div search-dropdown text="myText" value="myValue"></div>

该指令是

<div class="btn-group searchDropdown">
    <button type="button" class="btn btn-default">
        <input search-dropdown-input type="text" placeholder="Enter name to search..." ng-model="filterText" ng-change="filter();" />
    </button>
    <button search-dropdown-toggle type="button" class="btn btn-default dropdown-toggle">
        <span class="caret"></span>
        <span class="sr-only">Split button!</span>
    </button>
    <ul class="dropdown-menu" role="menu">
        <li ng-repeat="item in items"><a href="javascript:void(0);" ng-click="selectItem($index);">{{ item.name }}</a></li>
    </ul>
</div>

您说要从webServer加载它,是否可能是您在尝试将变量分配给后端数据之前使用该变量?

我建议使用类似:

$scope.$watch("myValue", function (newVal) {console.log(newVal);})

要么:

$timeout(function () {console.log($scope.myValue);}, 5000)

这个想法是在后端AJAX请求完成后打印变量值。 它会打印出比使用$watch函数所需要的值更正确的值,以及在达到预期值后将对该变量执行的操作。

看来一切都很好。 唯一的区别是我的棱角版本。

要修复我的版本,我使用了一个对象而不是两个单独的变量来传递给我的指令。

所以现在我的指令属性像这样填充

Text="myObj.text" value="myObj.value"

我猜想变量的“引用”以某种方式丢失了?

之前有过类似的问题,建议您这样做。 我只记得在此张贴后。 希望这对别人有帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM