angularjs - 每次重用具有不同模型的Angular html视图
问题描述
我目前正在开发一个 AngularJS 应用程序,它提供了一个带有不同滑块的视图,允许用户在preferences.html
文件中指定首选项(使用 Angular Material)。现在我想扩展这个应用程序以允许不同的用户同时使用它。这意味着preferences.html
显示多次,每个用户一个实例。但是,每次preferences.html
调用时,都应该将首选项发送到另一个 ng-model。
到目前为止,我的代码如下所示(单个用户的偏好获取):
首选项.html:
<div ng-controller="myController as myCtrl">
<div layout="row">
<h2>One</h2>
<md-slider class="preference-slider" min="0" step="1" max="20" ng-model="myCtrl.preferenceOne" id="slider"></md-slider>
<p class="preference-value">{{myCtrl.preferenceOne}}</p>
<h2>Two</h2>
<md-slider class="preference-slider" min="0" step="1" max="20" ng-model="myCtrl.preferencesTwo" id="slider"></md-slider>
<p class="preference-value">{{myCtrl.preferencesTwo}}</p>
</div>
</div>
我的控制器:
var app = angular.module('myApp');
app.controller('myController', function($rootScope, $scope, $filter, $timeout) {
this.PreferenceOne = 10;
this.PreferenceTwo = 10;
...
});
每个用户的首选项视图应同时显示,如下所示:
<div ng-include="preferences.html" ng-show="isReady"></div> (for User 1)
<div ng-include="preferences.html" ng-show="isReady"></div> (for User 2)
...
我发现类似问题的解决方案使用指令,但他们总是尝试只使用一个视图和多个模型。但是,我希望有多个我的视图实例,并且每个实例都应该使用不同的ng-model
. 最终我想收集所有模型/视图的值并将它们发送到后端。
解决方案
如果您使用 ui-router 命名视图,并将每个视图连接到相同的“preferences.html”模板和“preferencesController”或其他任何东西,那会起作用吗?每个实例本质上是一个单一的表单,并且屏幕将允许同时有多个活动用户(例如,具有单屏幕的触摸屏信息亭)?
<ui-view name="user1" />
<ui-view name="user2" />
etc.
最终你的要求是“让我成为一个指令”,但如果你出于某种原因想这样做,我理解。我也喜欢偷工减料。
编辑!
尝试这个:
$stateProvider
.state('multiUser',{
views: {
'user1': {
templateUrl: 'preferences.html',
controller: 'preferencesController'
},
'user2': {
templateUrl: 'preferences.html',
controller: 'preferencesController'
}
}
})
我从来没有亲自这样做过,但我相信它会为每个命名视图实例化一个新的控制器实例,而不是“共享”一个控制器实例。
推荐阅读
- java - 我在下面的代码中收到错误为 ClassCastException
- python - 以自定义方式解包列表的麻烦
- reactjs - 使用带有formik的react自定义组件处理onChange
- java - Google Sign-In ApiException:10:在已发布的应用程序上
- javascript - 多个相交的正方形
- java - 在同一个 java 邮件会话上创建多个传输连接
- unit-testing - 如何对 serde(deserialize_with) 中使用的反序列化函数进行单元测试?
- r - 如何加速共病功能并尝试理解代码
- postgresql - 如何使用postgres中的where条件获取表的结果包含数字和字符串
- handlebars.js - Handlebar 模板中的条件 url