我正在使用controllerAs语法来避免控制器中的$ scope汤,并且还使用ui.bootstrap来呈现模式视图。
我需要打开一个与当前控制器共享相同作用域的modalInstace。注入示波器时,您可能会执行以下操作:
var modalInstance = $uibModal.open({
templateUrl: 'addEditModal.html',
scope: $scope
});
但是,由于我没有注入作用域,而是使用controllerAs语法,因此无法正常工作。
根据我的发现,您将需要使用resolve来传递数据,但是必须通过函数显式传递数据。有没有办法通过整个范围?
在这种模式下,我需要做很多事情,传递数据负载似乎过大了。
不想这样做,因为看起来很杂乱…
var modalInstance = $modal.open({
templateUrl: 'myModalContent.html',
controller: 'ModalInstanceCtrl',
resolve: {
user: function() {
return vm.user;
},
something: function() {
return vm.something;
},
blah: function() {
return blah;
}
}
});
还有更好的主意吗?
我需要打开一个与当前控制器共享相同作用域的modalInstace。
模态服务创建继承的范围。和
var modalInstance = $uibModal.open({
templateUrl: 'addEditModal.html',
scope: $scope
});
不会注入作用域,而是为模式控制器指定父作用域(否则,将根作用域用作父作用域)。
由于controllerA在父控制器上使用,因此模态控制器将可以访问vm
其范围内的继承对象。
问题内容: 将“当前”传递给AngularJS服务是否正确? 我处于一种$ service的状态,知道它仅由一个控制器使用,并且我想在$ service方法本身中引用该控制器的作用域。 这在 哲学上是 正确的吗? 还是最好将事件广播到$ rootScope,然后让我的控制器侦听它们? 问题答案: 要让控制器知道何时发生异步,请使用Angular promises。 要触发,您不需要作用域,可以调用
我正在使用Elessar库创建一个多范围选择器:https://github.com/quarterto/Elessar 到目前为止效果很好,除了一件事...我似乎找不到任何将ID传递到预填充范围的功能。如果需要更新从数据库加载的现有范围,这就有问题了。 以下是文档中提供的选项: 理想情况下,我认为,您应该能够通过一个ID([min,max,ID])的范围,这样您就可以在更新滑块时检测到实际更改了
问题内容: 是否可以通过某种方式将一个函数的范围传递给另一个函数? 例如, 我宁愿直接访问变量,即,不使用类似或的任何东西,而只是直接使用或。 问题答案: 真正访问函数私有范围的唯一方法是在函数内部声明,这样就形成了一个闭包,允许隐式访问变量。 这是您的一些选择。 直接访问 在内部声明。 如果您不想在中使用,则可以将它们都放在更大的容器范围内: 这些是您可以直接使用的变量而无需任何额外的代码来移动
问题内容: 与Firebase问题相比,这更像是JavaScript关闭问题。在以下代码中,Firebase回调无法识别父作用域中的变量myArr。 问题答案: 回调函数可以很好地识别/修改。问题是,当执行标记为“不工作”的标签时,回调尚未触发。 让我们稍微更改一下代码: 现在,可能会更容易了解发生了什么。 您注册一个侦听器,该侦听器将调用添加到Firebase中的每个帖子 这将导致对服务器的调用
问题内容: 好的,所以我想在动态生成的模板url中使用作用域变量。所以我尝试了这个: html js 我原本希望返回的值,但最终却得到了。结果导致templateUrl为。 那么,我该怎么办才能获取范围变量的值而不是原始文本? 问题答案: 作用域值不能从指令的templateUrl中访问。这些属性尚未编译,因此无法在此上下文中访问范围。 这是一种可能适合您的解决方法。 见Plunkr 我在这里所做
问题内容: 我正在使用CURL将数据插入elasticsearch,当我插入固定数据时,它可以正常工作。我正在尝试获取当前DateTime并分配给变量,并与我要插入的对象一起使用。 这是我的剧本, 我需要获取当前的DateTime并分配给CreateDate。我怎样才能做到这一点? 问题答案: 建议不要使用引号内的引号,而是建议使用 here-doc 摆脱所有魔术引号。这样使用: