【发布时间】:2015-06-24 20:24:19
【问题描述】:
仍在使用 Angular 学习绳索,我有一个表单,可将学生加载到 JSON 返回的选择下拉列表中,我想根据学生 ID 将学校名称标签更改为列为学生学校的学校。这是 JSON 的所有部分,它正在工作......有点。当我从下拉列表中选择学生时,没有任何反应,但如果我将选择更改回默认值,则更改有效,标签现在具有预期值。
在我的 .ascx 中
<select name="studentList" ng-model="student" ng-change="getStudent(student)" ng-options="s.StudentID as s.FirstName for s in cStudents | orderBy:'FirstName'">
<option value="">Choose Students...</option>
</select>
来自控制器
angularVolunteerApp.controller('vAppController',
function vAppController($scope, $window) {
$scope.cStudents = $window.xStudents;
$scope.getStudent = function(xStudent) {
angular.forEach(xStudents, function (s) {
if (s.StudentId == xStudent) {
$scope.cSchoolName = s.SchoolName;
}
});
//$scope.cSchoolName = xStudent;
};
});
不确定这是否相关,但这是针对 Sharepoint 2010 中的 Web 部件
【问题讨论】:
-
似乎它应该可以工作,但你没有所有的 HTML,所以我们看不到应该声明学校名称/等的标签之类的东西。如果您设置了 Plnkr 或其他东西,我会查看它并为您解决。
-
你能用我的 jsfiddle 项目重新创建这个吗?我没有为下拉列表生成的学生列表jsfiddle.net/jgshultz/mbp2qap2
-
不是更像
if (s.StudentId === xStudent.id)吗? -
@KreepN 我有一个 Plnkr,但为学生重新创建的数组似乎没有工作,我不知道为什么。 Angular 工作正常……plnkr.co/edit/Ei7L54chG7TRn9JOuH9z?p=preview
-
@Rav3nL0g 不,您在更改时将 ng-model 传回,这是学生 ID 值,当我将该值设置为标签时,它是正确的。
标签: javascript html angularjs sharepoint-2010 scope